DE69428555T2 - Anti-aliasing-Verfahren für Trickfilm - Google Patents
Anti-aliasing-Verfahren für TrickfilmInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 39
- 230000008569 process Effects 0.000 title description 9
- 230000033001 locomotion Effects 0.000 claims description 79
- 238000001914 filtration Methods 0.000 claims description 39
- 238000005070 sampling Methods 0.000 claims description 25
- 239000011159 matrix material Substances 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 8
- 238000010606 normalization Methods 0.000 claims description 6
- 230000002194 synthesizing effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000001228 spectrum Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 101100175003 Oryza sativa subsp. japonica RGB1 gene Proteins 0.000 description 2
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101150018444 sub2 gene Proteins 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing 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
- 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.
- 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.
- 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.
- Eine Beschreibung wird zunächst für die Prinzipien der vorliegenden Erfindung geliefert, die später auf deren Ausgestaltungen angewendet werden.
- 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. <
- 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;(ξ) = f&sub0;(x)exp(iξx)dx,
- F(ξ;t) = f(x;t)exp(iξx)dx,
- wobei ξ 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(ξ;ω) = F(ξ;t)exp(iωx) dx,
- wobei ω die zeitliche Winkelfrequenz in rad/Teilbild ist.
- Die abgetastete Bildfolge fs(x,t) ist dargestellt durch
- fs(x,t) = f(x,t) δ(x - 2πp/Ξ)δ(t - 2πr/Ω),
- wobei Ξ und Ω die Abtastfrequenzen in Raum und Zeit und p und r ganze Zahlen sind. Wenn ein Punkt pro Pixel pro Teilbild abgetastet wird, sind Ξ = 2π und Ω = 2π. Die Fouriertransformation von fs ist
- Fs(ξ;ω) = Fm,l (ξ;ω), (1)
- wobei m und l ganze Zahlen sind, und
- Fm,l (ξ;ω) = F(ξ + mΞ, ω + 1Ω).
- Gleichung (1) gibt an, dass Repliken von F um die Gitterpunkte (-mΞ, -lΩ) zentriert auftreten, wie in Fig. 1 gezeigt.
- Wenn F(ξ,ω) außerhalb der Nyquist Frequenzen (±Ξ/2, ±Ω/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 → 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)
- ξ räumliche Winkelfrequenz (rad/Pixel)
- ω 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;(ξ) räumliches Spektrum von f&sub0;
- F(ξ,ω) räumlich-zeitliches Spektrum von f,
- Fs(ξ,ω) räumlich-zeitliches Spektrum von fs
- Ξ räumliche Abtastfrequenz
- Ω zeitliche Abtastfrequenz
- Fm,l bei (-mΞ, -1Ω) zentrierte Replik von F
- w(x) räumliches Anti-Aliasing-Filter
- g(x,t) verschiebungsvariantes räumlich-zeitliches Filter
- G(ξ,ω) räumlich-zeitliches Spektrum von g.
- 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(ξ,ω) = exp(iωt)dt f&sub0;(x + v&sub0;(t&sub0; - t))exp(iξx)dx = F&sub0;(ξ)exp[iξv&sub0;(t - t&sub0;)]exp(iωt)dt = 2πF&sub0;(ξ)exp(-iξv&sub0;t&sub0;)δ(v&sub0;ξ + ω) (3)
- wobei δ die Dirac'sche Deltafunktion ist und die Gleichung
- exp(iuv)dv = 2πδ(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;(ξ) 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(ξ,ω) = 2πδ(v&sub0;ξ + ω). (4)
- Die lineare Filterung im Fourier Bereich GvFs ist äquivalent mit einer Faltung in der realen Raumzeit, d. h.
- fs(x,t)δ((x&sub0; - x) - (t&sub0; - t)v&sub0;)dxdt. (5)
- 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) δ(x - 2πp/Ξ)δ(t - 2πr/Ω),
- Als nächstes wird das Anti-Aliasing-Filter betrachtet. Beim Filtern für konstante Bewegung kann Gleichung 5 geschrieben werden als
- fs(x,t)δ(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))(∂s/∂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 = (∂s/∂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(ω;u) die Fouriertransformation der Funktion km ist.
- km(t;u) = exp[imΞs(t;u,t&sub0;)].
- Offensichtlich gilt
- h0,0 = w(x&sub0; - u)f&sub0;(u)du.
- Wenn allerdings Km bei ω = lΩ nicht singulär ist, geht das Aliasing-Muster wie
- hm,l = 0.
- gegen 0. Damit ist der Beweis fertig.
- Man beachte, dass Km(lΩ,u) z. B. bei einer periodischen Bewegung mit einer Frequenz (lΩ/m) periodischen Bewegungen oder einer konstanten Bewegung mit einer Geschwindigkeit (lΩ/mΞ) singulär sein kann.
- Die Filterung der Gleichung (9) kann auch in einer diskreten Form dargestellt werden. Indem Ξ = 2π und Ω = 2π 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 = (∂s/∂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) → 1 mit t → 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.
- 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 Δd = (Δx,Δ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 Δx < 0.5 und Δ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.
- 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 α(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 α 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 α wird auf 0 ≤ α ≤ 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
- α(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 (ξ) der Richtung des Strahles auf die x-y-Ebene. Wenn x und ξ 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
- ξe = Rx
- Durch lineares Approximieren der Beziehung zwischen der Augenrichtung ξ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
- α&sub0; (ix, iy) = α&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;
- α&sub0;(ix,iy) = α&sub0;(ix,iy)/(t&sub2; - t&sub1; + 1)
- Die normierten Daten RGB&sub0; und α&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.
- 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
- αa = α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.
- 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 α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; α&sub1; id&sub1; NEXT),
- (RGB&sub2; z&sub2; α&sub2; id&sub2; NEXT),
- (RGB&sub3; z&sub3; α&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; α&sub2; id&sub2; NEXT),
- (RGB&sub3; z&sub3; α&sub3; id&sub3; NEXT),
- (RGB&sub1; z&sub1; α&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 = αi1 · RGBi1 + (1 - αi1) · αi2 · RGBi2 + (1 - αi1) · (1 - αi2) · αi3 · RGBi3
- In dem oben erwähnten Beispiel der Listen ist
- RGB = α&sub2; · RGB&sub2; + (1 - α&sub2;) · α&sub3; RGB&sub3; + (1 - α&sub2;) x (1 - α&sub3;) · α&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Ω) = f&sub0;(x&sub0;, y&sub0;)exp(i1Ω)dt = (1/2π)f&sub0;(x&sub0;, y&sub0;)δ(1Ω)
- 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)) ∂s/∂x, wobei C eine
Normierungskonstante bezeichnet, w(x) ein räumliches Anti-Aliasing-Filter bezeichnet und ∂s/∂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.
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)
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)
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 |
-
1993
- 1993-04-05 JP JP07807093A patent/JP3151079B2/ja not_active Expired - Fee Related
-
1994
- 1994-03-31 CA CA002120437A patent/CA2120437C/en not_active Expired - Lifetime
- 1994-04-01 US US08/221,563 patent/US5548693A/en not_active Expired - Fee Related
- 1994-04-05 EP EP94105251A patent/EP0619556B1/de not_active Expired - Lifetime
- 1994-04-05 DE DE69428555T patent/DE69428555T2/de not_active Expired - Fee Related
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 |