DE69428555T2 - Anti-aliasing-Verfahren für Trickfilm - Google Patents

Anti-aliasing-Verfahren für Trickfilm

Info

Publication number
DE69428555T2
DE69428555T2 DE69428555T DE69428555T DE69428555T2 DE 69428555 T2 DE69428555 T2 DE 69428555T2 DE 69428555 T DE69428555 T DE 69428555T DE 69428555 T DE69428555 T DE 69428555T DE 69428555 T2 DE69428555 T2 DE 69428555T2
Authority
DE
Germany
Prior art keywords
image
pixel
motion
point
sub
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
DE69428555T
Other languages
English (en)
Other versions
DE69428555D1 (de
Inventor
Mikio Shinya
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of DE69428555D1 publication Critical patent/DE69428555D1/de
Application granted granted Critical
Publication of DE69428555T2 publication Critical patent/DE69428555T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/12Indexing scheme for image data processing or generation, in general involving antialiasing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

    Hintergrund der Erfindung
  • Die vorliegende Erfindung betrifft allgemein das Feld der Computergrafik und genauer gesagt ein Anti-Aliasing-Verfahren zum Beseitigen von räumlichem Aliasing aus Bewegungsfolgen (Animationen), die an einem Computer erzeugt oder synthetisiert wurden.
  • Beim Synthetisieren von Bildern durch Computer über Abtastung tritt sogenanntes Aliasing auf. Aliasing-Artefakte sind auf dem Gebiet der Grafik lange Zeit problematisch gewesen. Diese Probleme sind besonders schwerwiegend in Bewegungsfolgesequenzen, weil flackernde schmale Gegenstände und wandernde Zacken deutlich bemerkbar sind. Herkömmlicherweise wird meistens ein Überabtastungsverfahren verwendet, um räumliches Aliasing dieser Art zu beseitigen (siehe z. B. J. Foley et. al. "Computer Graphics-Principles and Practice", Addison Wesley Publishing Co., 1990, im folgenden als Literatur 1 bezeichnet, insbesondere Kap. 14.10, 17.2 und 21.5). Das Überabtastungsverfahren verringert Aliasing durch zwei- oder mehrmaliges Abtasten des Bildes pro Pixel. Um die Anti-Aliasing-Wirkung zu verstärken, kann das Überabtastungsverfahren manchmal in Kombination mit einem in Literatur 1, Kap. 16.12.4 beschriebenen stochastischen Abtastverfahren verwendet werden. Dieses Verfahren verschiebt die Positionen von Abtastpunkten geringfügig von ihren regulären Positionen durch Verwendung einer Zufallszahl oder dergleichen und ermöglicht so eine Verringerung von moiré-artigem Aliasing, das durch Abtasten des Bildes an den regulären Positionen verursacht wird.
  • Die Wirkung der oben erwähnten räumlichen Anti-Aliasing-Verfahren verstärkt sich mit zunehmender Zahl von Abtastwerten pro Pixel, sie werfen aber hinsichtlich der Beschleunigung des Betriebs ein Problem auf, da die Rechenkomplexität und infolgedessen die Rechenzeit ebenfalls proportional zur Anzahl der Abtastwerte zunimmt.
  • Das Dokument Computer Graphics, Band 17, Nr. 3, 25. Juli 1983, New York, Seiten 377 bis 388, Korein and Rider, "Temporal Anti-Aliasing in Computer Generated Animation" offenbart zwei verschiedene Algorithmen nur für zeitliches Anti-Aliasing, einen kontinuierlichen Algorithmus und einen Überabtastungsalgorithmus.
  • Kurzbeschreibung der Erfindung
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Verfahren anzugeben, mit dem es möglich ist, die gleiche Anti-Aliasing-Wirkung wie mit dem Überabtastungsverfahren bei hoher Geschwindigkeit für Bewegungsfolgen, die durch Computer erzeugt oder synthetisiert werden, ohne Erhöhung der Anzahl der Abtastwerte pro Pixel zu erreichen.
  • Gemäß der vorliegenden Erfindung wird Information über die Bewegung von Gegenständen und des Augenpunktes während der Erzeugung einer Bewegungsfolge verwendet, um die Bewegung jedes Bildpunktes auf der Bildebene an einem Punkt jedes Gegenstands zu berechnen, und räumlich-zeitliche Filterung wird basierend auf der so berechneten Bewegung des Bildpunktes durchgeführt. Bei der Synthese eines bewegten Bildes durch Abtastung kann die räumlichzeitliche Filterung auch für eine Bewegung durchgeführt werden, die durch geringfügiges Verschieben der Positionen von Abtastpunkten in jedem Bild der Bewegungsfolge erzeugt wird.
  • Wie oben beschrieben, werden nach der vorliegenden Erfindung Daten über die Bewegung von Gegenständen und des Augenpunkts, die während der Produktion der Bewegungsfolge verwendet werden, verwendet, um die Bewegung jedes Bildpunktes auf der Bildebene an jedem Punkt der Gegenstände zu berechnen, und basierend auf der berechneten Bewegung der Gegenstände wird räumlich-zeitliche Filterung durchgeführt - dies ist offenbar äquivalent zu dem Verfahren, bei dem die Positionen von Abtastpunkten verschoben und die Anzahl von Abtastwerten pro Pixel erhöht wird. Daher ermöglicht die vorliegende Erfindung eine Hochgeschwindigkeitsimplementierung des gleichen Anti-Aliasing-Effekts, der auch mit dem Überabtastungsverfahren erreichbar ist. Durch Durchführung der räumlich-zeitlichen Filterung für eine durch geringfügiges Verschieben der Positionen von Abtastpunkten in jedem Teilbild der Bewegungsfolge wie oben angesprochen erzeugten Bewegungsfolge ist es auch möglich, das Anti-Aliasing für einen Gegenstand zu realisieren, der mit Bezug auf das Bildschirmkoordinatensystem still steht.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 ist ein schematisches Diagramm, das ein Beispiel von Aliasing im Fourierraum zeigt;
  • Fig. 2 ist ein Diagramm, das das räumlich-zeitliche Spektrum eines mit konstanter Geschwindigkeit bewegten Bildes zeigt;
  • Fig. 3 ist ein Flussdiagramm einer Ausgestaltung der vorliegenden Erfindung;
  • Fig. 4 ist ein Flussdiagramm, das den Bewegungsfolge-Bildsyntheseschritt von Fig. 3 im Detail zeigt;
  • Fig. 5A ist ein Diagramm zur Erläuterung von Verschiebungen von Abtastpunkten in einem willkürlichen Teilbild;
  • Fig. 5B ist ein Diagramm, das Verschiebungen von Abtastpunkten in dem unmittelbar auf das in Fig. 5A abgebildete Teilbild folgenden Teilbild zeigt;
  • Fig. 6 ist ein detailliertes Flussdiagramm eines ersten Filterprozesses von Fig. 3;
  • Fig. 7 ist ein Diagramm zur Erläuterung der Datenstruktur von Arbeitsdaten;
  • Fig. 8A ist ein Diagramm, das die Beziehungen zwischen einem bewegten starren Körper, dem Augenpunkt und dem Bildpunkt zeigt;
  • Fig. 8B ist ein Diagramm zur Erläuterung der Bewegung eines planaren Spiegelbildes;
  • Fig. 8C ist ein Diagramm zur Erläuterung der Bewegung von an gekrümmten Oberflächen gebrochenen oder gespiegelten Bildern;
  • Fig. 8D ist ein Diagramm zur Erläuterung der Approximation der Bewegung eines reflektierten oder gebrochenen Bildes;
  • Fig. 9 ist ein Diagramm zur Erläuterung der gewichteten Summation von RGB-Werten für den gleichen Bildpunkt;
  • Fig. 10 ist ein detailliertes Flussdiagramm eines zweiten Filterprozesses von Fig. 3;
  • Fig. 11 ist ein detailliertes Flussdiagramm eines Ausgangsbildbestimmungsprozesses in Fig. 3; und
  • Fig. 12A bis 12D sind Diagramme, die als Beispiele die Wirkung der vorliegenden Erfindung zeigen.
  • Beschreibung der bevorzugten Ausgestaltung
  • Eine Beschreibung wird zunächst für die Prinzipien der vorliegenden Erfindung geliefert, die später auf deren Ausgestaltungen angewendet werden.
  • < Fourieranalyse>
  • Zeitliche Veränderungen in Bewegungsfolgesequenzen gehen üblicherweise auf die Bewegung der Kamera und von Gegenständen zurück. Hier werden die räumlich-zeitlichen Spektren von Bildsequenzen bewegter Gegenstände mathematisch analysiert. Die Geschwindigkeit auf der Bildebene wird zunächst als in Raum und Zeit konstant angenommen, und dann folgen Analysen mit räumlich-zeitlichen Schwankungen. Die Analysen liefern ein ideales Anti-Aliasing-Filter mit unendlichem Integral unter bestimmten Bedingungen. In diesem Abschnitt wird der Einfachheit halber ein eindimensionaler Raum (Bild) angenommen, doch ist die Verallgemeinerung auf zweidimensionale Bilder mathematisch unproblematisch. <
  • Vorbereitung>
  • Bei x die Bildkoordinaten in Pixeln und t die Zeit in Teilbildern. Eine reelle Funktion f&sub0;(x) sei das Bild bei t = t&sub0; und f(x; t) sei die Bildfolge. Die räumliche Fouriertransformation von f ist definiert durch
  • F&sub0;(&xi;) = f&sub0;(x)exp(i&xi;x)dx,
  • F(&xi;;t) = f(x;t)exp(i&xi;x)dx,
  • wobei &xi; die räumliche Winkelfrequenz (rad/Pixel) bezeichnet und i die imaginäre Einheit i² = -1 ist.
  • Ähnlich ist die räumlich-zeitliche Fouriertransformation definiert durch
  • F(&xi;;&omega;) = F(&xi;;t)exp(i&omega;x) dx,
  • wobei &omega; die zeitliche Winkelfrequenz in rad/Teilbild ist.
  • Die abgetastete Bildfolge fs(x,t) ist dargestellt durch
  • fs(x,t) = f(x,t) &delta;(x - 2&pi;p/&Xi;)&delta;(t - 2&pi;r/&Omega;),
  • wobei &Xi; und &Omega; die Abtastfrequenzen in Raum und Zeit und p und r ganze Zahlen sind. Wenn ein Punkt pro Pixel pro Teilbild abgetastet wird, sind &Xi; = 2&pi; und &Omega; = 2&pi;. Die Fouriertransformation von fs ist
  • Fs(&xi;;&omega;) = Fm,l (&xi;;&omega;), (1)
  • wobei m und l ganze Zahlen sind, und
  • Fm,l (&xi;;&omega;) = F(&xi; + m&Xi;, &omega; + 1&Omega;).
  • Gleichung (1) gibt an, dass Repliken von F um die Gitterpunkte (-m&Xi;, -l&Omega;) zentriert auftreten, wie in Fig. 1 gezeigt.
  • Wenn F(&xi;,&omega;) außerhalb der Nyquist Frequenzen (±&Xi;/2, ±&Omega;/2) ungleich 0 ist, dringen Repliken in den Rekonstruktionsbereich ein, was zu Aliasing-Artefakten führt. Mit anderen Worten kann Anti- Aliasing erreicht werden, wenn Repliken Fm,l ausgefiltert werden können. Deshalb kann Anti- Aliasing als ein Prozess aufgefasst werden, in dem gefilterte Bilder aus den abgetasteten Bildern berechnet werden, und folglich ist das Ziel, eine Abbildung
  • fs &rarr; f&sub0;(x)w(x&sub0; - x)dx,
  • für ein beliebiges x&sub0; zu finden. Dabei bezeichnet w(x) ein gewünschtes räumliches Anti-Aliasing- Filter.
  • Die hier definierte Notation ist wie folgend aufgelistet:
  • x Position auf dem Bild (Pixel)
  • t Zeit (Teilbild)
  • &xi; räumliche Winkelfrequenz (rad/Pixel)
  • &omega; zeitliche Winkelfrequenz (rad/Teilbild)
  • f&sub0;(x) Bild bei t = t&sub0;
  • f(x;t) Bild bei t
  • fs(x;t) abgetastete Bildsequenz
  • F&sub0;(&xi;) räumliches Spektrum von f&sub0;
  • F(&xi;,&omega;) räumlich-zeitliches Spektrum von f,
  • Fs(&xi;,&omega;) räumlich-zeitliches Spektrum von fs
  • &Xi; räumliche Abtastfrequenz
  • &Omega; zeitliche Abtastfrequenz
  • Fm,l bei (-m&Xi;, -1&Omega;) zentrierte Replik von F
  • w(x) räumliches Anti-Aliasing-Filter
  • g(x,t) verschiebungsvariantes räumlich-zeitliches Filter
  • G(&xi;,&omega;) räumlich-zeitliches Spektrum von g.
  • < Bewegung mit konstanter Geschwindigkeit>
  • Zunächst wird die einfachste Bewegung, Bewegung mit konstanter Geschwindigkeit, betrachtet. In diesem Fall kann das Bild bei t darstellt werden durch
  • f(x;t) = f&sub0;(x + v&sub0;(t&sub0; - t)) (2),
  • wobei v&sub0; die Geschwindigkeit des Musters ist. Ihr räumlich-zeitliches Spektrum ist
  • F(&xi;,&omega;) = exp(i&omega;t)dt f&sub0;(x + v&sub0;(t&sub0; - t))exp(i&xi;x)dx = F&sub0;(&xi;)exp[i&xi;v&sub0;(t - t&sub0;)]exp(i&omega;t)dt = 2&pi;F&sub0;(&xi;)exp(-i&xi;v&sub0;t&sub0;)&delta;(v&sub0;&xi; + &omega;) (3)
  • wobei &delta; die Dirac'sche Deltafunktion ist und die Gleichung
  • exp(iuv)dv = 2&pi;&delta;(u)
  • verwendet wurde.
  • Gleichung (3) stellt eine sehr wichtige Tatsache klar: Das Spektrum F kann von den Repliken getrennt werden, auch wenn das räumliche Spektrum F&sub0;(&xi;) sich über die Nyquist Frequenz hinaus erstreckt. Fig. 2 zeigt diese Situation. Die Repliken können wie in der Figur gezeigt ausgefiltert werden, wenn die Geschwindigkeit v&sub0; bekannt ist. Glücklicherweise kann die Geschwindigkeit leicht aus Bewegungsfolgedaten in Grafikanwendungen berechnet werden. Ein ideales Anti- Aliasing-Filter hat in diesem Fall daher die Form
  • Gv(&xi;,&omega;) = 2&pi;&delta;(v&sub0;&xi; + &omega;). (4)
  • Die lineare Filterung im Fourier Bereich GvFs ist äquivalent mit einer Faltung in der realen Raumzeit, d. h.
  • fs(x,t)&delta;((x&sub0; - x) - (t&sub0; - t)v&sub0;)dxdt. (5)
  • < Allgemeine Bewegung>
  • Nun wird die allgemeine Bewegung betrachtet. Wenn der Bildpunkt x&sub0; bei t&sub0; sich zu x&sub1; bei t&sub1; bewegt, ist die Bewegung gegeben durch
  • x&sub1; = s(t&sub1;;x&sub0;,t&sub0;) (6)
  • Z. B. ist der Fluss s des gleichen Bildpunktes bei konstanter Bewegung:
  • s(t;x&sub0;,t&sub0;) = x&sub0; + v(t - t&sub0;).
  • Man beachte, dass aufgrund der Definition
  • x = s(t;s(t&sub0;; x,t), t&sub0;)
  • die Reziprozität allgemein gilt.
  • Um Konvergenzprobleme zu vermeiden, sollte eine endliche Bewegungsfolgesequenz betrachtet werden. Mit dem Fluss s kann die Sequenz beschrieben werden als:
  • f(x, t) = f&sub0;(s(t&sub0;; x,t)), wenn t [-T/2, T/2] = 0 sonst, (7)
  • wobei T die Länge der Bewegungsfolge ist. Die abgetasteten Bildsequenzen sind gegeben durch
  • fs(x,t) = f(x,t) &delta;(x - 2&pi;p/&Xi;)&delta;(t - 2&pi;r/&Omega;),
  • Als nächstes wird das Anti-Aliasing-Filter betrachtet. Beim Filtern für konstante Bewegung kann Gleichung 5 geschrieben werden als
  • fs(x,t)&delta;(x&sub0; - sv(t&sub0;;x,t))dxdt.
  • In Analogie wird ein Filterkern g als
  • g(x,t;x&sub0;,t&sub0;) = (1/T)w(x&sub0; - s(t&sub0;;x,t))(&part;s/&part;x)t&sub0;,t = (1/T)w(x&sub0; - s(t&sub0;;x,t))Ds(t&sub0;;x,t) (8)
  • für räumlich variante Filterung bei (x&sub0;, t&sub0;) gesetzt:
  • h(x&sub0;,t&sub0;) = fs(x,t)g(x,t)dxdt. (9)
  • Dabei stellt w (x) ein geeignetes Anti-Aliasing-Filter wie etwa eine Sinc-Funktion, eine Gaussfunktion, eine Rechteckfunktion usw. dar. Der Faktor 1 /T ist die Normierungskonstante, und Ds = (&part;s/&part;x) kompensiert eine veränderliche Bildvergrößerung aufgrund räumlich ungleichförmiger Bewegung.
  • Es wird nun gezeigt, dass die durch Gleichung (9) definierte Filterung im Grenzfall T gegen unendlich ein ideales Anti-Aliasing-Filter wird. Nach Parsevals Gleichung kann Gleichung (9) geschrieben werden als
  • wobei G* die zu G konjugiert komplexe Größe bezeichnet. Die Funktion G ist das räumlichzeitliche Spektrum von g, berechnet durch
  • wobei u = s (t&sub0;;x, t). Dan kann das Integral hm,l ausgewertet werden als
  • wobei die Reziprozität s(t&sub0;; s(t&sub1;;u, t&sub0;), t&sub1;) = u verwendet wurde. Folglich gilt
  • wobei Km(&omega;;u) die Fouriertransformation der Funktion km ist.
  • km(t;u) = exp[im&Xi;s(t;u,t&sub0;)].
  • Offensichtlich gilt
  • h0,0 = w(x&sub0; - u)f&sub0;(u)du.
  • Wenn allerdings Km bei &omega; = l&Omega; nicht singulär ist, geht das Aliasing-Muster wie
  • hm,l = 0.
  • gegen 0. Damit ist der Beweis fertig.
  • Man beachte, dass Km(l&Omega;,u) z. B. bei einer periodischen Bewegung mit einer Frequenz (l&Omega;/m) periodischen Bewegungen oder einer konstanten Bewegung mit einer Geschwindigkeit (l&Omega;/m&Xi;) singulär sein kann.
  • < Diskrete Filterung>
  • Die Filterung der Gleichung (9) kann auch in einer diskreten Form dargestellt werden. Indem &Xi; = 2&pi; und &Omega; = 2&pi; gesetzt wird (Abtaster mit einem Abtastwert pro Pixel und Teilbild) können die folgenden Gleichungen
  • für T-Teilbild-Bildfolgen mit X-Pixel-Bildauflösung abgeleitet werden. Da Gleichung (11) eine endliche gewichtete Summe der abgetasteten Bilder ist, kann sie direkt berechnet werden.
  • Der Vergrößerungsfaktor Ds = (&part;s/&part;x) kompensiert Bildverzerrung aufgrund von ungleichförmigem Bewegungsfluss. Für räumlich ungleichförmige Bewegung (allgemeiner: für einen inkompressiblen Fluss) gilt Ds 1. Da außerdem Ds(t&sub0;;t,x) &rarr; 1 mit t &rarr; t&sub0; gilt, kann angenommen werden, dass Ds = 1 ist, wenn die Filtergröße T klein ist. Wenn die Ungleichförmigkeit nicht vernachlässigbar ist, muss Ds punktweise bewertet werden.
  • Für die praktische Implementierung wird die Filterungsgleichung (11) geringfügig abgewandelt. Unter der Annahme lokaler Gleichförmigkeit der Bewegungsflüsse wird die nächste Gleichung
  • h(x&sub0;, t&sub0;) = (1/T) f(p;r)w(s(r;x&sub0;, t&sub0;) - p) (12)
  • erhalten, wo die die Gleichförmigkeit x - y = s(t;x,t') - s(t;y,t') verwendet wurde. Der Vorteil von Gleichung (12) gegenüber Gleichung (11) ist, dass nur ein Fluss s(r;x&sub0;,t&sub0;) für (x&sub0;,t&sub0;) ausgewertet werden muss und nicht alle Flüsse s(t&sub0;;p,r).
  • Der Normierungsfaktor (1/T) beruht auf
  • und würde so bei endlichem T zu einem Normierungsproblem führen. Es ist daher besser, eine explizite Normierung zu verwenden, wie etwa
  • h(x&sub0;, t&sub0;) = f(p;r)w(s(r;x&sub0;, t&sub0;) - p)/ w(s(r;x&sub0;, t&sub0;) - p) (13)
  • Als nächstes wird eine Ausgestaltung der vorliegenden Erfindung beschrieben.
  • Fig. 3 ist ein Flussdiagramm des gesamten Prozesses der erfindungsgemäßen Ausgestaltung. Da ein Bewegungsfolgebild aus Bildern einer Sequenz von Teilbildern besteht, werden die Teilbildnummern im folgenden durch eine den Teilbildern entsprechende diskrete Zeit t dargestellt. In Fig. 3 ist eine Variable t&sub0; die Teilbildnummer des gegenwärtig verarbeiteten Bildes, und eine Variable tend ist die letzte Teilbildnummer des zu verarbeitenden Bildes. Jedes Teilbild ist aus Pixeln in einer Anzahl gebildet, die definiert ist durch eine vorgegebene Auflösung auf einem Schirm, auf den Gegenstände und Szenen projiziert werden.
  • In Schritt 10 wird ein Bewegungsfolgebild synthetisiert, und die synthetisierten Bewegungsfolge- Bilddaten 20 werden als durch eine Sequenz von Teilbildern gebildete Datei ausgegeben. Danach werden basierend auf dem Bewegungsfolge-Bilddaten 20 für alle Teilbilder t&sub0; = 0 bis tend die Schritte 30 bis 50 durchgeführt, um so den Anti-Aliasing-Prozess zu vollenden.
  • In Schritt 30 wird eine Filterung für Bildpunkte eines abgetasteten Gegenstands in dem in Verarbeitung befindlichen Teilbild durchgeführt (die im folgenden als erste Filterung bezeichnet wird). In Schritt 40 wird eine Filterung für Bildpunkte des Gegenstands durchgeführt, die nicht in dem in Verarbeitung befindlichen Teilbild abgetastet werden konnten (diese Filterung wird im folgenden als zweite Filterung bezeichnet). In Schritt 50 wird die Farbe des Ausgabebildes festgelegt. Diese Schritte werden jeweils im Detail beschrieben.
  • < Bewegungsfolge-Bildsyntheseschritt>
  • Der Bewegungsfolge-Bildsyntheseschritt 10 in Fig. 3 ist z. B. durch ein in Fig. 4 gezeigtes Flussdiagramm implementiert. Dieses Beispiel verwendet das oben erwähnte stochastische Abtastverfahren.
  • In Fig. 4 werden Daten zur Synthese eines Bewegungsfolgebildes in Schritt 100 eingegeben. Die Eingabedaten enthalten die Gestalt, Schattierungsparameter und Bewegung von Gegenständen, des Augenpunkts und ähnliche Daten. Anschließend werden die Schritte 110 bis 140 wiederholt für jedes Teilbild durchgeführt, bis die Verarbeitung aller Teilbilder beendet ist.
  • Schritt 110 ist der Schritt des Bestimmens der Verschiebung jedes Abtastpunkts für die stochastische Abtastung; die Verschiebung &Delta;d = (&Delta;x,&Delta;y) des Abtastpunktes PS vom Pixelmittelpunkt PX wird für jedes Teilbild durch Verwendung einer Zufallszahl oder dergleichen festgelegt. Unter der Annahme, dass der Abstand der Pixel 1 ist, wird die Größe der Verschiebung im Bereich &Delta;x < 0.5 und &Delta;y < 0.5 festgelegt. Dadurch unterscheidet sich die Position jedes Bildabtastpunktes PS mit Bezug auf den Pixelmittelpunkt PX für jedes Teilbild wie in Figs. 5A und 5B gezeigt, die schematische Darstellungen von zwei aufeinanderfolgenden Teilbildern FRt und FRt+1 sind. Figs. 5A und 5B zeigen, dass die (durch Kreuze dargestellten) Positionen der Abtastpunkte PS z. B. für die Teilbilder FRt und FRt+1 unterschiedlich sind.
  • Schritt 120 ist der Schritt des Synthetisierens eines Bildes durch Abtastung; basierend auf den in Schritt 110 festgelegten Verschiebungen der Abtastpositionen wird das Bild für jedes Teilbild mit einem bekannten Verfahren wie etwa dem z-Pufferverfahren oder dem Ray-Tracing-(Strahlenverfolgungs-)verfahren (siehe z. B. Literatur 1) festgelegt.
  • Schritt 130 ist der Schritt des Ausgebens von Bewegungsfolgebilddaten 20 in eine Datei oder dergleichen. Die Ausgabedaten bestehen aus Bewegungsfolgedaten und Bilddaten und dergleichen, die in Schritt 120 erhalten worden sind. Die Bewegungsfolgedaten sind z. B. die Richtung und Position jedes Gegenstands in der Szene in dem auf dem Bildschirm definierten Rahmen oder Teilbild relativ zum Augenpunkt. Dies kann üblicherweise beschrieben werden durch eine Transformationsmatrix T(id,t&sub0;) vom Gegenstandsraum zum Bildraum, wobei id die Identifikationsnummer eines Gegenstands Ob und t&sub0; die Nummer des Teilbildes ist. Die Matrix T beinhaltet die Wirkung der in Schritt 110 festgelegten Verschiebungen der Abtastpunkte. Die in Schritt 120 erhaltenen Bilddaten sind die Farbe RGB(ix, iy, iz) und der Tiefenwert z(ix, iy, iz) für jedes Pixel, die Identifikationsnummer id(ix, iy, t) des abgetasteten Gegenstands Ob etc.
  • Schritt 140 ist ein Schritt des Aktualisierens der Positionen und Richtungen des Gegenstands Ob, des Augenpunkts PE und dergleichen durch Verwendung von Information über Bewegung, die in den Eingabedaten in Schritt 100 enthalten ist.
  • < Erste Filterung>
  • Die erste Filterung in Schritt 30 von Fig. 3 dient zum Durchführen von räumlich-zeitlicher Filterung für einen in dem in Verarbeitung befindlichen Teilbild t&sub0; abgetasteten Gegenstand; diese Filterung wird implementiert durch ein Flussdiagramm wie in Fig. 6 gezeigt. In Fig. 6 bezeichnet Variablen t&sub1; und t&sub2; den Bereich der Teilbildnummern, in denen Filterung durchgeführt werden soll; Variablen ix und iy bezeichnen die Position jedes Pixels; Konstanten nx und ny bezeichnen die Pixelauflösung jedes Bildes in x- und y-Richtung, und eine Variable t bezeichnet die Teilbildnummer.
  • Schritt 310 ist der Schritt des Initialisierens der Arbeitsdaten. Wie in Fig. 7 dargestellt, sind die Arbeitsdaten aufgebaut aus Farbdaten RGB&sub0;(ix, iy) Tiefendaten z&sub0;(ix, iy) und dem Beitragsfaktor &alpha;(ix, iy) für jedes Pixel (ix, iy) des Teilbildes, und der Identifikationsnummer id(ix, iy) des Gegenstands Ob, der an diesem Pixel abgetastet wird, sowie ein Zeiger NEXT (ix, iy). Der Zeiger NEXT gibt an, dass es einen anderen Fluss eines Bildpunktes gibt, der ebenfalls durch das gleiche Pixel (ix, iy) verläuft, allerdings mit einer anderen Tiefe z, wie etwa im Falle eines Bildpunktes auf der Rückseite des gleichen Gegenstands oder eines Bildpunktes eines anderen Gegenstandes dahinter. Der Zeiger NEXT stellt eine Adresse dar, auf die für eine weitere Liste von Arbeitsdaten eines solchen anderen Bildpunkts zugegriffen werden soll. Wie z. B. in Fig. 7 gezeigt, umfasst die Liste von Arbeitsdaten für das Pixel (ix, iy) Arbeitsdaten über einen Gegenstand ObA einschließlich eines Zeigers NEXT, der eine Adresse darstellt, an der Arbeitsdaten zu einem anderen Gegenstand ObB gespeichert sind, zu dem das Pixel (ix, iy) ebenfalls gehört. Wenn das Pixel noch zu einem weiteren Gegenstand ObC gehört, ist die Adresse von deren Arbeitsdaten gegeben durch den Zeiger der Arbeitsdaten, der an der oben genannten Adresse gespeichert ist. Wenn es keinen Gegenstand gibt, zu dem das Pixel gehört, wird NULL als Zeiger geschrieben. Ferner können mehrere unterschiedliche Gegenstände in das gleiche Pixel projiziert werden, in welchem Falle diese Daten unabhängig in der Liste gespeichert werden können. Wenn z. B. ein dreidimensionaler Gegenstand Ob sich unter Drehung bewegt, tritt auch die Situation auf, wo unterschiedliche Bildpunkte des Gegenstands sich in einem bestimmten Teilbild t an unterschiedlichen Pixelpositionen befinden, in einem Teilbild t&sub0; aber das gleiche Pixel (ix&sub0;,iy&sub0;) passieren. Auf jeden Fall werden in der Arbeitsdatenliste für jedes Pixel nacheinander die Arbeitsdaten der Flüsse von verschiedenen Bildpunkten gespeichert, die durch das Pixel verlaufen und miteinander durch den Zeiger verknüpft sind. So bilden die Arbeitsdaten durch den Zeiger NEXT eine Listenstruktur.
  • Der Beitragsfaktor &alpha; ist das Verhältnis, mit dem der RGB-Wert des jeweiligen Gegenstands zum Farbwert (dem RGB-Wert) des Pixels beiträgt, wenn eine Mehrzahl von Flüssen in dem Pixel überlappt. Der Beitragsfaktor &alpha; wird auf 0 &le; &alpha; &le; 1 gesetzt. In Schritt 310 findet die Initialisierung für alle Pixel (ix, iy) des Teilbildes wie folgt statt:
  • RGB&sub0;(ix,iy) = 0
  • z&sub0;(ix,iy) = zmax
  • &alpha;(ix,iy) = 0
  • NEXT(ix,iy) = NULL
  • Die Konstante zmax ist der Maximalwert, der als Tiefenwert eines Gegenstands zulässig ist; z. B. ist sie im Falle einer Vorzeichenlosen 24-Bit-Ganzzahl 2²³-1.
  • Die Konstante NULL bezeichnet den Abschluss der Listenstruktur. Die Arbeitsdaten für jedes Pixel sind an der entsprechenden Adresse eines Arbeitsdatenspeicherbereichs gespeichert.
  • Schritt 320 ist ein Schritt des Festlegens des Filterbereiches (t&sub1;,t&sub2;), der durch die Rahmennummer spezifiziert ist. Zum Beispiel wird die Länge nt eines vorgegebenen Filterbereiches für das gegenwärtig verarbeitete Teilbild t0 verwendet, um den Filterbereich wie folgt festzulegen:
  • t&sub1; = MAX(0,t&sub0; - nt/2)
  • t&sub2; = MIN(t&sub1; + nt - 1,tend)
  • Die Symbole MAX und MIN stellen die Auswahl des jeweils größten bzw. kleinsten unter den in den Klammern angegebenen Werten dar. Anschließend werden die Schritte 330 bis 350 für das Pixel (ix,iy) für alle Teilbilder im Filterbereich von t&sub1; bis t&sub2; wiederholt.
  • Schritt 330 ist ein Schritt des Berechnens der Bewegung s von Gegenstandsbildern, z. B. in Gleichungen (6) und (7). Typische Beispiele von auf dem Bildschirm zu synthetisierenden Bewegungsfolgebildern sind (a) ein Bild eines bewegten starren Gegenstandes, (b) ein Bild eines bewegten nicht-starren Gegenstandes, (c) ein Bild eines Spiegelbildes eines bewegten Gegenstandes, das auf einen ebenen Spiegel projiziert ist, und (d) ein Bild eines bewegten Gegenstandes, durch ein brechendes optisches Medium oder an einem gekrümmten Spiegel reflektiert. Diese Bilder werden im folgenden beschrieben.
  • (a) Die Position und Orientierung des starren Gegenstandes Ob sind gegeben durch das Gegenstandskoordinatensystem wie in Fig. 8A gezeigt. Dieses Koordinatensystem kann durch eine Transformationsmatrix A beschrieben werden, die vom Weltkoordinatensystem abgeleitet ist. Genauer gesagt werden eine 3x3-Rotationsmatrix R und der Mittelpunkt-Positionsvektor o verwendet, um das Gegenstandskoordinatensystem durch die folgende 4x4-Matrix darzustellen:
  • Andererseits wird ein Bildpunkt x' eines Punktes x im Weltkoordinatensystem mit folgender Gleichung unter Verwendung einer Perspektivtransformationsmatrix T berechnet.
  • x' = xT,
  • wobei x und x' als mit homogenen Koordinaten beschrieben angenommen werden. Wenn der Gegenstand Ob und der Augenpunkt PE sich bewegen, sind sowohl A als auch T Funktionen der Zeit t. Daher kann der auf x'(t) zur Zeit t projizierte Bildpunkt durch folgende Gleichung zur Zeit t berechnet werden.
  • x'(t) = x'(0)T&supmin;¹(0)A&supmin;¹(0)A(t)T(t)
  • (b) Im Fall des nicht-starren Gegenstandes wird angenommen, dass jeder Punkt auf dem Gegenstand durch eine parametrische Funktion f(u,t) bezeichnet ist, die einen Parameter u verwendet. Unter der Annahme, dass der Punkt auf dem Gegenstand, der dem Parameter u entspricht, zur Zeit t = 0 auf dem Bildpunkt x'(0) projiziert wird, kann dieser Bildpunkt durch folgende Gleichung zur Zeit t ausgedrückt werden.
  • x'(t) = f(u,t)T(t)
  • (c) Fig. 8B zeigt den Fall der Bewegung eines an einem ebenen Spiegel reflektierten Bildes, die der Bewegung eines Bildes entspricht. Unter der Annahme, dass das Bild von einer durch eine Gleichung ax + by + cz = d definierten Ebene reflektiert wird, kann der Symmetriepunkt xm des Punktes x auf der Spiegeloberfläche zur Ebene durch folgende Gleichung berechnet werden.
  • xm = xM
  • Dieser Spiegelbildpunkt x' kann von folgender Gleichung unter Verwendung der Perspektivtransformationsmatrix T abgeleitet werden.
  • x' = xMT
  • (d) Die paraxiale Näherungstheorie ist als Verfahren zum Erhalten eines Spiegelbildes an einer gewöhnlichen gekrümmten Oberfläche oder eines gebrochenen Bildes, das ein optisches Medium passiert hat, bekannt. In dieser Theorie ist ein Strahl spezifiziert durch Position und Richtung. Das heißt, ein Strahlenkoordinatensystem wie in Fig. 8C gezeigt wird betrachtet, und der Strahl ist definiert durch den Schnittpunkt (x) des Strahles mit der x-y-Ebene und die Projektion (&xi;) der Richtung des Strahles auf die x-y-Ebene. Wenn x und &xi; klein sind, kann eine Änderung des Strahles, die durch Reflexion oder Brechung verursacht ist, mit der folgenden Matrixdarstellung linear approximiert werden:
  • Dabei sind A, B, C und D jeweils eine 2 · 2-Matrix, die analytisch oder näherungsweise mit einem bekannten Verfahren erhalten werden kann, wie z. B. in Shinya et al., "Principles and Applications of Pencil Tracing", Proc. of Siggraph '87, Seiten 45 bis 54 offenbart. Zum Beispiel kann mit Bezug auf den Strahl vom Augenpunkt die Position x = 0 gesetzt werden, wie durch die folgende Gleichung ausgedrückt, wenn die Position des Augenpunktes auf den Ursprung gelegt wird.
  • Unter der Annahme, dass dieser Strahl reflektiert oder gebrochen wird und einen Punkt (x,z) auf einem Gegenstand erreicht, wie in Fig. 8D gezeigt, kann er als eine durch folgende Gleichung gegebene 2 · 2-Matrix R ausgedrückt werden.
  • R = (B + zD)&supmin;¹x
  • &xi;e = Rx
  • Durch lineares Approximieren der Beziehung zwischen der Augenrichtung &xi;e und dem Bildpunkt x' auf dem Bildschirm und Ausdrücken dieser Beziehung durch die folgende Gleichung unter Verwendung einer Matrix S
  • x' = S
  • kann der Bildpunkt an der Position x wie folgt berechnet werden:
  • x' = SRx
  • In dem in Fig. 6 gezeigten Schritt 330 wird ein Bewegungsfolgen-Bilddatenwert, der bei Beobachtung eines bewegten Gegenstandes unter gewünschten Bedingungen erhalten wird, mit Verfahren wie oben beschrieben berechnet und dann ausgegeben. Die Berechnung der Bewegung s mit Gleichung (6) und (7) wird nun als Beispiel mit Bezug auf den Fall beschrieben, wo sich ein starrer Gegenstand bewegt. In Gleichungen (6) und (7) ist die einfachste Bewegung zur Erläuterung der Prinzipien der Erfindung die Bewegung eines Gegenstandes allein in x-Richtung, doch werden für die folgende Beschreibung, um die zweidimensionale Bewegung des Gegenstandes auszudrücken, Gleichungen (6) und (7) wie folgt umgeschrieben:
  • x&sub1; = sx(t&sub1;;x,y,t)
  • y&sub1; = sy/t&sub1;;x,y,t) (14)
  • f(x,y,z) = f&sub0;(sx(t&sub1;;y,t),sy(t&sub1;;y,t), wenn t [-T/2,T/2], = 0 sonst (15)
  • Die Bewegungsfolgedaten und die Daten zur Gegenstandsidentifikationsnummer id werden verwendet, um die Bewegung jedes Bildpunktes aus folgender Gleichung zu erhalten.
  • (x&sub1;, y&sub1;, z&sub1;, w&sub1;) = (ix, iy, z(ix, iy, t&sub0;), 1)
  • T&supmin;¹(id(ix, iy, t&sub0;), t&sub0;)
  • T(id(ix, iy, t&sub0;), t)
  • sx = INT(x&sub1;/W&sub1;)
  • sy = INT(y&sub1;/W&sub1;)
  • z&sub1; = z&sub1;/W&sub1; (16)
  • Dabei ist T&supmin;¹ eine inverse Matrix zu der oben erwähnten Perspektivtransformationsmatrix T, und die Funktion INT(a) liefert die einer reellen Zahl a nächstbenachbarte ganze Zahl.
  • In dem Bestimmungsschritt 340 wird geprüft, ob eine kontinuierliche Bewegung wie durch Gleichung (15) gegeben aufgrund einer versteckten Oberfläche des Gegenstandes Ob oder seiner Überlappung mit einem anderen Gegenstand nicht erhalten wird, und in einem solchen Falle wird der nächste Summationsschritt 350 übersprungen. Diese Bestimmung kann z. B. implementiert werden, indem bestimmt wird, ob der Bildpunkt des Gegenstandes, der im Teilbild t an dem Pixel (sx,sy) abgetastet wird, sich zum Pixel (ix,iy) des Teilbildes t&sub0; bewegt, das durch Gleichung (14) definiert ist. Wenn die folgenden Gleichungen
  • x0' = ix
  • y0' = iy
  • für
  • (x, y, z, w) = (sx, sy, z (sx, sy, t), 1)
  • T&supmin;¹(id(sx, sy, t), t)
  • T(id(sx, sy, t), t&sub0;)
  • z&sub0;' = z/W
  • x&sub0;' = INT(x/W)
  • y&sub0;' = INT(Y/W),
  • gelten, ist es möglich, eine Bestimmung durchzuführen, mit der Gleichung (15) erfüllt werden kann.
  • In Schritt 350 wird eine gewichtete Summation, die eine diskrete Auswertung von Gleichungen (12) oder (13) ist, durchgeführt, wenn in Schritt 340 festgelegt wird, dass Gleichung (15) gilt. Die gewichtete Summation wird z. B. wie folgt durchgeführt:
  • RGB&sub0;(ix, iy) = RGB&sub0;(ix, iy) + RGB(sx, sy, t) * w
  • W&sub0; = W&sub0; + W
  • &alpha;&sub0; (ix, iy) = &alpha;&sub0; + 1
  • id&sub0; (ix, iy) = id(sx, sy) wenn z&sub0;' < z&sub0; (ix, iy) = id&sub0;(ix, iy) sonst
  • z&sub0;(ix, iy) = MIN{z&sub0;(ix, iy), z&sub0;'}
  • Die gewichtete Summation für die RGB-Werte vom Teilbild t&sub1; bis t&sub2; bedeutet, dass Bildpunkte Po' in den Teilbildern t&sub1; bis t&sub2;, die dem gleichen Punkt Po auf dem gleichen bewegten Gegenstand Ob entsprechen, wie in Fig. 9 gezeigt verfolgt werden und dass die gewichtete Summation für RGB-Werte der Pixel stattfindet, denen der Bildpunkt Po' folgt. W ist eine Gewichtungsfunktion; wenn W = 1 in dem Bereich des Pixels ist, wo der Bildpunkt Po' in einem willkürlichen Teilbild t liegt, und wenn W = 0 außerhalb des Bereiches ist, dann ist die Gewichtungsfunktion ein Kastenfilter. Ferner wird z&sub0;' in Schritt 340 erhalten. Wenn in Schritt 340 festgelegt wird, dass Gleichung (15) nicht erfüllt ist, wird Schritt 350 übergangen.
  • Wenn die Schritte 330 bis 350 für alle Teilbilder im Filterbereich von t&sub1; bis t&sub2; in Verbindung mit dem Pixel (ix,iy) durchgeführt worden sind, wird Schritt 360 durchgeführt. In Schritt 360 wird für das Pixel (ix,iy) die folgende Normierung vorgenommen.
  • RGB&sub0;(ix,iy) = RGB&sub0;(ix,iy)/W&sub0;
  • &alpha;&sub0;(ix,iy) = &alpha;&sub0;(ix,iy)/(t&sub2; - t&sub1; + 1)
  • Die normierten Daten RGB&sub0; und &alpha;&sub0; werden als Arbeitsdaten des Pixels (ix,iy) des Teilbildes t&sub0; zur Datenliste der dem Pixel entsprechenden Adresse addiert.
  • Die oben erwähnten Schritte 330 bis 360 werden für alle Pixel (ix,iy) des gegenwärtig verarbeiteten Teilbildes t&sub0; durchgeführt.
  • < zweite Filterung>
  • Der zweite Filterungsschritt 40 in Fig. 3 ist ein Schritt, bei dem eine räumlich-zeitliche Filterung für Gegenstände durchgeführt wird, die nicht in dem gegenwärtig verarbeiteten Teilbild abgetastet werden konnten. Der zweite Filterungsschritt wird implementiert durch die Durchführung von Prozessen wie in Fig. 10 abgebildet. In Fig. 10 bezeichnen Variablen t&sub1;, t&sub2; den Filterungsbereich; Variablen ix, iy bezeichnen die Position jedes Pixels, Konstanten nx, ny bezeichnen die Pixelauflösung in x- bzw. y-Richtung, und eine Variable t bezeichnet die Teilbildnummer.
  • In dem zweiten Filterungsschritt werden Schritte 410 bis 440 für alle Pixel in allen Teilbildern t im Filterbereich t&sub1; bis t&sub2; mit Ausnahme des Teilbildes t&sub0; durchgeführt. In Schritt 410 wird ein Pixel (ix', iy') in dem Teilbild t&sub0; erhalten, zu dem sich der abgetastete Bildpunkt am Pixel (ix,iy) im Teilbild t bewegt. Wie im Falle des Schrittes 330 in Fig. 6 wird es nach folgender Gleichung berechnet:
  • (x&sub1;, y&sub1;, z&sub1;, w&sub1;) = (ix, iy, z(ix, iy, t), 1)
  • T&supmin;¹(id(ix, iy, t), t)
  • T(id(ix, iy, t), t&sub0;)
  • x' = x&sub1;/W&sub1;
  • y' = y&sub1;/W&sub1;
  • ix' = INT(x')
  • iy' = INT(y') (17)
  • Schritt 420 ist ein Schritt des Überprüfens der im Arbeitsdatenspeicher für das Pixel (ix', iy') des Teilbildes t&sub0; gespeicherten Datenliste und des Bestimmens, ob die Liste Werte enthält, die die Beziehung zwischen dem Pixel (ix, iy) in dem Teilbild t und Gleichung (15) erfüllen. Eine Verarbeitung entsprechend der von Schritt 340 in Fig. 6 wird für alle Paare des z-Wertes zj und der Gegenstandsidentifikationsnummer idj durchgeführt, die in der Liste enthalten sind. Das heißt, die Bewegung des Bildpunktes für den gleichen Gegenstand idj wird aus folgender Gleichung abgeleitet:
  • (x, y, z, w) = (ix', iy', zj, 1)T&supmin;¹(idj, t&sub0;)T(idj, t)
  • xj' = x/W
  • yj' = y/W
  • um zu überprüfen, ob die folgenden Ungleichungen erfüllt sind:
  • xj' - ix < 0.5
  • yj' - iy < 0.5 (18)
  • Wenn das Datenpaar zj und idj, für das die Gleichung gilt, nicht gefunden wird, dann wird angenommen, dass der beim Pixel (ix,iy) im Teilbild t abgetastete Bildpunkt am Pixel (ix', iy') im Teilbild t&sub0; existiert hat, aber noch nicht verarbeitet worden ist, z. B. weil er im Schatten eines anderen Gegenstandsbildes gelegen hat; dann wird eine Filterung für diese Abtastung in Schritt 430 durchgeführt. Wenn das Datenpaar zj und idj die Ungleichungen (18) erfüllt, ist sein Gegenstandsbild bereits der ersten Filterung unterzogen worden; folglich werden die Schritte 430, 440 und 450 übersprungen.
  • Der Filterungsschritt 430 ist der gleiche wie die Schritte 330, 340 und 350 im ersten Filterungsschritt und wird wie nachfolgend angegeben durchgeführt. Zunächst wird die folgende Berechnung für das Teilbild t' im Filterbereich durchgeführt
  • (x&sub1;, y&sub1;, z&sub1;, w&sub1;) = (ix, iy, z(ix, iy, t), 1)
  • T&supmin;¹(id(ix, iy, t), t)
  • T(id(ix, iy, t), t)
  • x&sub1;' = x&sub1;/W&sub1; + (ix' - x')
  • y&sub1;' = y&sub1;/W&sub1; + (iy' - y')
  • sx = INT(x&sub1;')
  • sy = INT(y&sub1;')
  • z&sub1; = z&sub1;/W&sub1;
  • Dabei sind ix', iy', x' und y' die durch Gleichung (17) in Schritt 410 erhaltenen Werte und t ist das [Teilbild] von Fig. 10. Dann wird bestimmt, ob die folgenden Gleichungen
  • x&sub0;' = ix'
  • y&sub0;' = iy'
  • für
  • (x, y, z, w) = (sx, sy, z(sx, sy, t'), 1)
  • T&supmin;¹(id(sx, sy, t'), t')
  • T(id(sx, sy, t'), t&sub0;)
  • z&sub0;' = z/W
  • x&sub0;' = INT(x/W)
  • y&sub0;' = INT(y/W).
  • gelten.
  • Wenn festgestellt wird, dass sie gelten, wird die folgende gewichtete Summation, die eine diskrete Auswertung von Gleichung (14) ist, berechnet.
  • RGBa = RGBa + RGB(sx, sy, t') *W
  • &alpha;a = &alpha;a + 1
  • ida = id(sx, sy) if z&sub0;' < za = ida otherwise
  • za = MIN(z&sub0;', za)
  • In Schritt 440 werden die in Schritt 430 berechneten Werte RGBa, ida und za wie in Schritt 360 von Fig. 6 normiert und dann zu der dem Pixel (ix',iy') entsprechenden Arbeitsdatenliste hinzugefügt.
  • < Ausgabebildbestimmung>
  • Der Schritt der Ausgabebildbestimmung 50 in Fig. 3 dient zur Bestimmung des Ausgabebildes des gegenwärtig verarbeiteten Teilbildes t&sub0; auf der Grundlage der durch die erste und zweite Filterung erhaltenen Ergebnisse. Dieser Schritt wird implementiert durch die Durchführung von Prozessen wie in Fig. 11 abgebildet.
  • Schritt 510 ist ein Schritt, in dem Daten wie etwa RGBj und &alpha;j, die in der dem Pixel (ix,iy) entsprechenden Liste von Arbeitsdaten gespeichert sind, nach dem Tiefenwert z für dieses Pixel sortiert werden. Als Beispiel wird angenommen, dass die folgenden drei Datensätze als Liste für ein bestimmtes Pixel gespeichert worden sind.
  • (RGB&sub1; z&sub1; &alpha;&sub1; id&sub1; NEXT),
  • (RGB&sub2; z&sub2; &alpha;&sub2; id&sub2; NEXT),
  • (RGB&sub3; z&sub3; &alpha;&sub3; id&sub3; NULL)
  • Wenn in diesem Beispiel z&sub2; < z&sub3; < z&sub1; gilt, werden die drei Datensätze in ansteigender Reihenfolge des z-Wertes wie folgt durch Sortieren umgeordnet
  • (RGB&sub2; z&sub2; &alpha;&sub2; id&sub2; NEXT),
  • (RGB&sub3; z&sub3; &alpha;&sub3; id&sub3; NEXT),
  • (RGB&sub1; z&sub1; &alpha;&sub1; id&sub1; NULL).
  • In Schritt 520 werden die in ansteigender Reihenfolge des z-Wertes (d. h. in ansteigender Reihenfolge des Abstandes von Bildpunkten auf dem gleichen Gegenstand und/oder auf verschiedenen Gegenständen vom Augenpunkt), die in Schritt 510 erhalten worden ist, einer gewichteten Summation basierend auf dem Beitragsfaktor unterzogen. Diese Summation wird berechnet durch
  • RGB = &alpha;i1 · RGBi1 + (1 - &alpha;i1) · &alpha;i2 · RGBi2 + (1 - &alpha;i1) · (1 - &alpha;i2) · &alpha;i3 · RGBi3
  • In dem oben erwähnten Beispiel der Listen ist
  • RGB = &alpha;&sub2; · RGB&sub2; + (1 - &alpha;&sub2;) · &alpha;&sub3; RGB&sub3; + (1 - &alpha;&sub2;) x (1 - &alpha;&sub3;) · &alpha;&sub1; · RGB&sub1;
  • Indem die Verarbeitung der Schritte 510 und 520 für alle Pixel durchgeführt wird, wird ein Ausgabebild für das Teilbild t&sub0; synthetisiert.
  • Indem die Schritte 30 bis 50 in Fig. 3 für alle Teilbilder durchgeführt werden, wird die Verarbeitung vollendet und anti-aliasing-gefilterte Bewegungsfolgebilder werden erhalten.
  • Fig. 12A bis 12D zeigen schematisch den Betrieb der vorliegenden Erfindung. Es wird angenommen, dass ein Bild eines schmalen rechteckigen Gegenstandes im Zeitablauf von t = 0 bis t = 1 sich um V Pixel bewegt hat, wie in Fig. 12A gezeigt. Da das projizierte Bild schmal ist, bleiben einige Punkte auf dem Bild unabgetastet; folglich wird aus einem Bild, das kontinuierlich sein sollte, zur Zeit t&sub0;, wie in Fig. 12B gezeigt, und zur Zeit t&sub1;, wie in Fig. 12C gezeigt, ein diskontinuierliches Bild. Dies ist ebenfalls Aliasing. Beim herkömmlichen Überabtastungsverfahren wird ein solches Aliasing durch Erhöhen der Anzahl von Abtastwerten pro Pixel reduziert; die Rechenzeit nimmt proportional zur Anzahl der Abtastwerte zu. Im Gegensatz dazu kann gemäß der vorliegenden Erfindung durch Anwenden von räumlich-zeitlicher Filterung auf Bilder bei t = 0 und t = 1 unter Berücksichtigung der Bewegung V ein kontinuierliches Bild wie in Fig. 12D gezeigt auch bei einem Abtastpunkt pro Pixel geliefert werden.
  • Da wie oben beschrieben Bewegungsfolgebilder zur Anti-Aliasing-Behandlung einer räumlichzeitlichen Filterung unterzogen werden, ist es möglich, eine Anti-Aliasing-Wirkung zu erreichen, die bei höherer Geschwindigkeit der des herkömmlichen Überabtastungsverfahrens vergleichbar ist, ohne dass die Anzahl von Abtastwerten erhöht werden muss. Da außerdem jeder Pixelwert auf der Grundlage des Tiefenwertes z wie in dem Ausgabebildfestlegungsschritt in Fig. 11 festgelegt wird, nachdem geprüft worden ist, ob Gleichung (15) erfüllt ist, wie in Schritt 340 von Fig. 6 und in Schritt 420 von Fig. 10, wird die korrekte Operation auch durchgeführt, wenn ein Bildpunkt auf dem Gegenstand hinter anderen Gegenständen verborgen ist.
  • Durch Verschieben der Position des Abtastpunktes relativ zum Pixelmittelpunkt für jedes Teilbild in dem Bewegungsfolgebild-Synthetisierungsschritt kann ein Anti-Aliasing auch für Gegenstände erreicht werden, die z. B. mit Bezug auf das Bildschirmkoordinatensystem stillstehen. Unter diesen Umständen würde sich das Bild dieser Gegenstände nicht bewegen, sofern nicht der Abtastpunkt verschoben wird. Dies wird dadurch bewiesen, dass durch Erweitern von Gleichung (10) auf eine zweidimensionale Form und Einsetzen von s = 0 (d. h. sx = sy = 0) darein
  • hm,n,l = f&sub0;(x&sub0;, y&sub0;)Km,n,l(1&Omega;) = f&sub0;(x&sub0;, y&sub0;)exp(i1&Omega;)dt = (1/2&pi;)f&sub0;(x&sub0;, y&sub0;)&delta;(1&Omega;)
  • erhalten wird, was bei l = 0 divergiert. Wenn hingegen der Abtastpunkt für jedes Teilbild verschoben wird, bewegt sich das Bild geringfügig auf dem Schirm und Gleichung (15) divergiert nicht, was ein Anti-Aliasing ermöglicht.
  • Es liegt auf der Hand, dass viele Abwandlungen und Veränderungen vorgenommen werden können, ohne den Rahmen der neuen Konzepte der vorliegenden Erfindung, wie in den beigefügten Ansprüchen definiert, zu verlassen.

Claims (10)

1. Verfahren zur Beseitigung von Aliasing, das in einer zeitseriellen Sequenz von Teilbildern von Animations-Bilddaten auftritt, die Bilder einer computergenerierten Animation darstellen, mit den Schritten:
(1) Synthetisieren der zeitseriellen Sequenz von Teilbildern durch Abtasten an Abtastpunkten auf von einem Augenpunkt aus gesehenen Gegenständen für jedes Teilbild;
(2) Berechnen der Bewegung s(t;x&sub0;,t&sub0;) jedes Bildpunktes auf einem Bildschirm, der einem Abtastpunkt auf einem Gegenstand entspricht, durch Verwendung der Bewegung des Gegenstandes und des Augenpunktes von Schritt (1), wobei die Bewegung s(t;x&sub0;,t&sub0;) die Position x des jeweiligen Bildpunktes zu einer Zeit t darstellt, der zur Zeit t&sub0; die Position x&sub0; hatte; und
(3) Durchführen von räumlich-zeitlicher Filterung auf der Grundlage der in Schritt (2) erhaltenen Bewegung, mit den Schritten:
(3.1) Berechnen eines Kernes g(x,t;x&sub0;,t&sub0;) für die lineare räumlich-zeitliche Filterungsoperation durch folgende Gleichung: g(x,t;x&sub0;,t&sub0;) = C·w(x&sub0; - s(t&sub0;;x,t)) &part;s/&part;x, wobei C eine Normierungskonstante bezeichnet, w(x) ein räumliches Anti-Aliasing-Filter bezeichnet und &part;s/&part;x eine Schwankung der Bildvergrößerung aufgrund räumlich ungleichförmiger Bewegung kompensiert; und
(3.2) Unterziehen jedes Teilbildes f(x,t) einer räumlich-zeitlichen Filterung durch Berechnen von f(x,t)·g(x,t;x&sub0;,t&sub0;)·dxdt, wodurch räumliches Aliasing in dem Bild f(x,t) beseitigt wird.
2. Verfahren nach Anspruch 1, bei dem Schritt (1) für jedes Teilbild das Verschieben der Position jedes der Abtastpunkte aus dem Mittelpunkt des jeweiligen Pixels umfaßt.
3. Verfahren nach Anspruch 1, bei dem Schritt (2) das Berechnen der Bewegung jedes Bildpunktes mit folgender Gleichung umfaßt:
x'(t) = x(0) T&supmin;¹(0) A&supmin;¹(0) A(t) T(t),
wobei T(t) eine Perspektivtransformationsmatrix und A eine durch
gegebene Matrix bezeichnet, wobei R eine Rotationsmatrix ist, die eine Orientierung des Gegenstandes darstellt und o der Mittelpunktspositionsvektor des Gegenstandes ist.
4. Verfahren nach Anspruch 1, bei dem der Gegenstand ein nicht-starrer Körper ist und Schritt (2) das Berechnen der Bewegung der Bildpunkte auf dem Gegenstand durch x'(t) = f(u,t)·T(t) unter Verwendung einer parametrischen Funktion f(u,t), die jeden Punkt auf dem Gegenstand zur Zeit t darstellt, und einer Perspektivtransformationsmatrix T(t) umfaßt, wobei u ein dem Punkt auf dem Gegenstand entsprechender Parameter ist.
5. Verfahren nach Anspruch 1, 2, 3 oder 4, bei dem Schritt (2) das Berechnen, als Bildpunkt auf dem Schirm, eines Spiegelbildpunktes eines Punktes auf dem Gegenstand, der durch einen ebenen Spiegel reflektiert ist, auf der Grundlage einer symmetrischen Transformation umfaßt.
6. Verfahren nach Anspruch 1, 2, 3 oder 4, bei dem Schritt (2) das Berechnen, als Bewegung des Bildpunktes auf dem Schirm, der Bewegung eines Spiegelbildes eines Punktes auf dem Gegenstand, der durch eine gekrümmte Oberfläche reflektiert ist, auf der Grundlage der paraxialen Näherungstheorie umfaßt.
7. Verfahren nach Anspruch 1, 2, 3 oder 4, bei dem Schritt (2) das Berechnen, als Bewegung des Bildpunktes auf dem Schirm, der Bewegung eines Bildes eines Punktes auf einem reflektierten Bild des Gegenstandes, das ein optisch durchlässiges Medium passiert hat, basierend auf der paraxialen Näherungstheorie umfaßt.
8. Verfahren nach Anspruch 1, bei dem Schritt (3) das sequentielle Durchführen einer gewichteten Summation von Farbwerten von Pixelverfolgungswegen von abgetasteten Bildpunkten einer Serie von Bildern auf der Grundlage der berechneten Bewegung umfaßt.
9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem Schritt (3) ferner umfaßt
(3.3) Anwenden der räumlich-zeitlichen Filterung auf Bildpunkte von Gegenständen, die in einem gegenwärtig verarbeiteten Teilbild vom Augenpunkt aus nicht sichtbar sind.
10. Verfahren nach Anspruch 9, bei dem Schritt (3.3) das Berechnen des Weges eines Bildpunktes eines Gegenstandes, der vom Augenpunkt im gegenwärtig verarbeiteten Teilbild aus nicht sichtbar ist, und, während des Verfolgens des berechneten Weges, das Durchführen einer gewichteten Summation von Farbwerten von Pixeln einer Serie von Teilbildern umfaßt, die dem gegenwärtig verarbeiteten Teilbild vorangehende Teilbilder und nachfolgende Teilbilder, nicht aber das gegenwärtig verarbeitete Teilbild selbst umfassen.
DE69428555T 1993-04-05 1994-04-05 Anti-aliasing-Verfahren für Trickfilm Expired - Fee Related DE69428555T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07807093A JP3151079B2 (ja) 1993-04-05 1993-04-05 アニメーションのエイリアシング除去方法

Publications (2)

Publication Number Publication Date
DE69428555D1 DE69428555D1 (de) 2001-11-15
DE69428555T2 true DE69428555T2 (de) 2002-05-08

Family

ID=13651593

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69428555T Expired - Fee Related DE69428555T2 (de) 1993-04-05 1994-04-05 Anti-aliasing-Verfahren für Trickfilm

Country Status (5)

Country Link
US (1) US5548693A (de)
EP (1) EP0619556B1 (de)
JP (1) JP3151079B2 (de)
CA (1) CA2120437C (de)
DE (1) DE69428555T2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2763499B2 (ja) * 1994-11-30 1998-06-11 株式会社ナムコ 画像合成装置及び画像合成方法
AU719554B2 (en) * 1995-07-03 2000-05-11 Koninklijke Philips Electronics N.V. Transmission of graphic images
AU718608B2 (en) 1996-03-15 2000-04-20 Gizmoz Israel (2002) Ltd. Programmable computer graphic objects
JP3472065B2 (ja) * 1997-03-17 2003-12-02 株式会社東芝 アニメーション生成装置およびアニメーション生成方法
US6208356B1 (en) * 1997-03-24 2001-03-27 British Telecommunications Public Limited Company Image synthesis
DE19740033A1 (de) * 1997-09-11 1999-03-18 Valeo Borg Instr Verw Gmbh Anzeigevorrichtung mit und ohne Antialiasing
JP3639108B2 (ja) * 1998-03-31 2005-04-20 株式会社ソニー・コンピュータエンタテインメント 描画装置および描画方法、並びに提供媒体
US6380936B1 (en) * 1999-10-22 2002-04-30 Microsoft Corportion System and method for inferring projective mappings
JP3636681B2 (ja) * 2000-08-24 2005-04-06 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、半導体デバイス、コンピュータプログラム及び記録媒体
US20020158856A1 (en) * 2000-09-14 2002-10-31 Deering Michael F. Multi-stage sample position filtering
US20040174379A1 (en) * 2003-03-03 2004-09-09 Collodi David J. Method and system for real-time anti-aliasing
US20060028476A1 (en) * 2004-08-03 2006-02-09 Irwin Sobel Method and system for providing extensive coverage of an object using virtual cameras
US7348996B2 (en) * 2004-09-20 2008-03-25 Telefonaktiebolaget Lm Ericsson (Publ) Method of and system for pixel sampling
JP4825781B2 (ja) * 2007-11-22 2011-11-30 株式会社 C−Mix モーション生成装置およびコンピュータプログラム
US8624911B1 (en) 2011-01-05 2014-01-07 Google Inc. Texture-based polygon antialiasing
KR101045942B1 (ko) 2011-05-24 2011-07-01 김도윤 필기자세 교정 펜
US9400584B2 (en) 2011-09-09 2016-07-26 Microsoft Technology Licensing, Llc Alias selection in multiple-aliased animations
US10115217B2 (en) 2011-10-28 2018-10-30 Microsoft Technology Licensing, Llc Layering animation properties in higher level animations
US9214036B1 (en) * 2012-06-26 2015-12-15 Pixar Animation engine for blending computer animation data

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025394A (en) * 1988-09-09 1991-06-18 New York Institute Of Technology Method and apparatus for generating animated images
CA2040273C (en) * 1990-04-13 1995-07-18 Kazu Horiuchi Image displaying system
US5428399A (en) * 1991-04-15 1995-06-27 Vistek Electronics Limited Method and apparatus for image translation with improved motion compensation

Also Published As

Publication number Publication date
EP0619556A2 (de) 1994-10-12
EP0619556A3 (de) 1995-03-01
CA2120437C (en) 1999-08-24
EP0619556B1 (de) 2001-10-10
DE69428555D1 (de) 2001-11-15
CA2120437A1 (en) 1994-10-06
US5548693A (en) 1996-08-20
JP3151079B2 (ja) 2001-04-03
JPH06290253A (ja) 1994-10-18

Similar Documents

Publication Publication Date Title
DE69428555T2 (de) Anti-aliasing-Verfahren für Trickfilm
DE69515287T2 (de) Verfahren zur erzeugung von synthesebild
DE69127516T2 (de) Verfahren und Gerät zur Bilderzeugung
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE69427210T2 (de) Verfahren und Gerät zur Erzeugung von dreidimensionaler Animation
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE69130132T2 (de) Verfahren zur Erzeugung von Adressen zu texturierten, in RIP Maps gespeicherten graphischen Primitiven
DE69716877T2 (de) System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem
DE102016103854A1 (de) Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE3854223T2 (de) Erzeugung und Anzeige von Rechnergraphiken.
DE60020887T2 (de) Optischer fluss und bildaufbau
DE69314231T2 (de) Belichtungseffekte für ein digitales Videoeffektensystem
EP2284795A2 (de) Quantitative Analyse, Visualisierung und Bewegungskorrektur in dynamischen Prozessen
DE4224568C2 (de) Vorrichtung und Verfahren zur Bildung der Anzeige eines dreidimensionalen sequentiellen tomografischen Flächenschattierungsbildes
DE102004007637A1 (de) Verfahren zum Erzeugen eines Bildes mit erhöhter Auflösung unter Verwendung einer Mehrzahl von Bildern mit niedriger Auflösung
DE69531536T2 (de) Synthetisches bilderzeugungsverfahren mit sphärischem puffer
DE69331419T2 (de) Bilddatenverarbeitung
DE69809920T2 (de) Verfahren und vorrichtung zur mehrfachauflösung objektorientierter bewegungsschätzung
DE69318930T2 (de) Bilddatenverarbeitung
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE602004012341T2 (de) Verfahren und System zur Bereitstellung einer Volumendarstellung eines dreidimensionalen Objektes
DE102019121200A1 (de) Bewegungsadaptives rendern mittels shading mit variabler rate
DE3854619T2 (de) Quadratische interpolation zur schattierten bilderzeugung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee