DE69534697T2 - Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte - Google Patents

Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte Download PDF

Info

Publication number
DE69534697T2
DE69534697T2 DE69534697T DE69534697T DE69534697T2 DE 69534697 T2 DE69534697 T2 DE 69534697T2 DE 69534697 T DE69534697 T DE 69534697T DE 69534697 T DE69534697 T DE 69534697T DE 69534697 T2 DE69534697 T2 DE 69534697T2
Authority
DE
Germany
Prior art keywords
function
image
value
fractal
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69534697T
Other languages
English (en)
Other versions
DE69534697D1 (de
Inventor
Mohamed Rebiai
Hugues Pavie
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.)
Thomson Broadcast Systems
Original Assignee
Thomson Broadcast Systems
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 Thomson Broadcast Systems filed Critical Thomson Broadcast Systems
Application granted granted Critical
Publication of DE69534697D1 publication Critical patent/DE69534697D1/de
Publication of DE69534697T2 publication Critical patent/DE69534697T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Studio Circuits (AREA)
  • Image Processing (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren, um strukturierte Videobilder zu erzeugen, insbesondere ein Verfahren, welches es erlaubt, Strukturen in Video-Echtzeit zu erzeugen mit der Absicht Spezialeffekte in Video-Bildsequenzen durchzuführen.
  • Spezialeffekte und vor allem die Bildsynthese sind bestens aus dem Gebiet des Films her bekannt. Allerdings sind auf dem Gebiet des Fernsehens Spezialeffekte besonders auf Einblendungen, Bildverformungen, oder auf hoch entwickelte Programmabläufe beschränkt. Nun stösst man auch auf dem Gebiet des Fernsehens auf die Notwendigkeit, eine gewisse Menge an Bildsynthesen (oder Bildfolgen) schaffen zu müssen und hier insbesondere texturierte Bilder. Allerdings tritt bei professionellem Videomaterial die Struktursynthese nur in Form von groben und sich immer wiederholenden Motiven in Erscheinung. Sie wird nur dazu benutzt, um Bildhintergründe zu erzeugen auf denen dann die Einblendungen ausgeführt werden.
  • Aus der Geländeanalyse ist es bekannt, dass fraktale Interpolationsfunktionen auf der Basis der Spline eingesetzt werden, um die Struktur eines Geländes zu interpolieren (siehe dazu insbesondere NAI-LIANG ZHAO et al <An approach to the synthesis on realistic terrain> Second International Conference on Computer aided design and Computer Graphics, Seite 31, China).
  • Die vorliegende Erfindung hat also zum Ziel ein neues Verfahren zur Erzeugung texturierter Videobilder vorzustellen, das es erlaubt, eine ziemlich breite Gesamtstruktur zu erzeugen, die in ein Videobild eingeblendet oder als Schlüssel zur Programmablaufmischung benutzt werden kann mit der Absicht Bildfolgen zu künstlerischen oder zu werblichen Zwecken zu erzeugen.
  • Es ist auch Ziel dieser Erfindung ein neues Verfahren zur Erzeugung texturierter Videobilder vorzuschlagen, das erlaubt, Strukturen zu erzeugen, wie beispielsweise Stoffmuster, Marmor, atmosphärische Effekte (Wolken, Nebel) Szenengestaltung oder Studioeinrichtungen, indem man ein gleiches Verfahren zur Erzeugung von Strukturen einsetzt.
  • Die vorliegende Erfindung hat weiterhin zum Ziel ein Verfahren vorzuschlagen, um texturierte Videobilder zu erzeugen, das vollständig parametrisierbar ist in der Art, dass man die Erscheinungsform oder die Vergrösserung von Strukturen verändern kann, um somit Trickfilmsequenzen zu erzeugen.
  • Hauptsächlich ist Ziel dieser Erfindung ein neues Verfahren zur Erzeugung texturierter Videobilder vorzuschlagen, das eine Struktur in Videoechtzeit synthetisieren kann, das heisst mit Bildwechseln von 25 Bildern pro Sekunde, 30 Bildern pro Sekunde oder andere.
  • Daraus ergibt sich, dass die Aufgabe der vorliegenden Erfindung ein Verfahren zur Erzeugung texturierter Videobilder ist, das einen Schritt zur Erzeugung mikroskopischer Strukturen beinhaltet, ausgehend von Benutzerparametern mit einer Funktion zur fraktalen Interpolation, die ein Signal fBm <fractial Brownian motion> erzeugt, wobei die erzeugten Bilder eine Abmessung L × W haben, wobei W die Anzahl von Punkten pro Linie und L die Anzahl aktiver Linien bedeutet.
  • Nach diesem Verfahren teilt man das Bild in Ndc = Bl × Bh Blöcke auf in der Grösse dl × dh Pixeln, wobei Bl die Anzahl an Blöcken in der Breite und Bh die Anzahl an Blöcken in der Höhe bedeuten und die Fraktale Funktion wie folgt festgelegt ist:
    Figure 00020001
    in der r > 1, r bezeichnet die Lückenhaftigkeit oder den Unregelmässigkeitsfaktor.
    H = (3 – D) wobei D die gewünschte fraktale Abmessung ist.
    N ist ein festgelegter Parameter, um eine Auflösung genau nach Pixel oder auf den Bildpunkt bezogen zu erhalten und Spln(xy) ist die Interpolation durch den B-Spline auf den Punkt wirklicher Koordinaten (xy) einer Vernetzung von erzeugten Punkten auf ganzen Koordinaten.
  • Das Ziel der vorliegenden Erfindung ist auch dadurch gekennzeichnet, dass sie einen Schritt zur Erzeugung eines Motivs beinhaltet, das am Eingang das Bild der Fraktale Funktion und der Benutzerparameter empfängt, auf die über eine Benutzerschnittstelle auf einem Computerbildschirm oder spezialisierten Bedienpult zugegriffen wird und am Ausgang eine makroskopische Textur ergibt.
  • Dieser Schritt ist besonders nützlich, um Texturen von der Art her wie Stoff oder Marmor zu erzeugen. Dieser Schritt erlaubt es am Ausgang ein Bild mit einer flachen Struktur zu bekommen, das heisst nicht auf einer Fläche geglättet. Am Ausgang dieses Schritts kann man entweder das Design des makroskopischen Motivs der Struktur erhalten oder das Design des makroskopischen Motivs der Struktur vervielfältigen. Man kann auch noch die Fraktale Funktion einführen als Phasengeräusch auf das Motiv oder die Fraktale Funktion als zusätzliches Geräusch zum Bild einführen. Dieser Schritt ermöglicht auch beispielsweise eine Verwebung von zwei Fadenmotiven oder die Erzeugung von Farben.
  • Nach noch einem Merkmal der vorliegenden Erfindung beinhaltet das Verfahren zusätzlich einen Schritt der Wiederholungsprobennahme, um ein Mapping des texturierten Bildes auf einer Fläche dar zu stellen.
  • Nach noch einem Merkmal der vorliegenden Erfindung fügt man in das Bild einen Tiefeneffekt ein, indem man die Helligkeit des Punktes der Oberfläche entsprechend seiner Entfernung im Verhältnis zum Punkt der Sichtbarmachung abschwächt.
  • Weitere Merkmale und Vorteile der vorliegenden Erfindung werden beim Lesen der Beschreibung mindestens eines bevorzugten Ausführungsbeispiels offenbar, die anschliessend mit Bezug auf die beigefügten Zeichnungen erfolgt, wobei:
  • 1 eine Grundzeichnung zur Erklärung der Fraktalverfahren zeigt;
  • 2 eine Aufteilung eines Bildschirms zeigt, wie zum Beispiel einen Fernsehbildschirm zur Umsetzung einer fraktalen Funktion;
  • 3 schematisch die Stufe zur Erzeugung eines Motivs zeigt, die von 2 Stammfunktionen ausgeht gemäß der vorliegenden Erfindung;
  • 4A bis 4C Grundzeichnungen sind, die die Stufe der Glättung einer Textur erläutern auf einer Fläche gemäß der vorliegenden Erfindung;
  • 5A bis 5B Grundzeichnungen sind, die die Hervorhebung der Textur erläutern, wie beispielsweise Wolken;
  • 6 eine Grundzeichnung des Schaltkreises ist, der die Spin-Funktion umsetzt;
  • 7 schematisch die Stufe zur Erzeugung der fraktalen Funktion zeigt;
  • 8 und 9 die Sequenzerkreise und den Ausgleichskreis der 7 zeigen;
  • 10 eine schematische Darstellung der Stufe zur Erzeugung eines Motivs ist;
  • 11 und 12 die Sequenzerkreise und Ausgleichskreise der 10 zeigen;
  • 13 eine schematische Darstellung der Stufe mit der Wiederholungsprobennahme ist;
  • 14 und 15 die Kreise „Projektion" und "Tiefendämpfung" der 13 erläutern und
  • 16 und 17 die Kreise „Berechnung der Parameter zur Hervorhebung" und „Berechnungsblock des Integral" der 13 zeigen.
  • Das Verfahren zur Erzeugung texturierter Videobilder, nach der vorliegenden Erfindung, beinhaltet eine erste Stufe zur Erzeugung einer mikroskopischen Textur ausgehend von den Benutzerparametern. Allerdings gibt das Szenenbild zwei Arten von Informationen, nämlich die Umrisse, die die Zonen des Bildes eingrenzen und die Art der darin enthaltenen Oberfläche in jeder Zone. Der letzte Typ an Informationen wird Textur genannt und gibt Auskunft über die Verhältnisse, die die verschiedenen Bildzonen verbinden. Andererseits ist die Gesamtheit der Texturen üblicherweise in zwei Klassen aufgeteilt: die makroskopischen Texturen und die mikroskopischen Texturen. Die makroskopischen Texturen sind durch zwei lokale Stammfunktionen oder Grundmotive gekennzeichnet, die sich räumlich nach bekannten Regeln einrichten, während die mikroskopischen Texturen dadurch gekennzeichnet sind, dass sie eine stochastische Struktur aufweisen, die die Platzierung und die Farbe der Pixel nach Wahrscheinlichkeitsgesetzen steuert.
  • Es bestehen zahlreiche Algorithmen die es erlauben mikroskopische Texturen zu synthetisieren. Dennoch erlauben es die unter Fachleuten bekannten Algorithmen im Allgemeinen nur gewisse Arten von Texturen zu verwirklichen. Somit lassen sich Texturen, die eine starke Ausrichtung oder ein starkes Gleichmass zeigen, wie beispielsweise Texturen mit Streifenmuster oder Texturen, die Papier vortäuschen oder Textilien, mit Markovschen Feldern darstellen. Der Nachteil dieses Verfahrens liegt in dessen Komplexität wegen seiner iterativen Struktur. Bestimmte andere Texturen, die beispielsweise Sand oder Rasen vortäuschen, können mit Hilfe von selbstregressiven Modellen erzielt werden. Diese Verfahren haben den Nachteil nicht immer stabil zu sein.
  • Zur Erzeugung von Texturen natürlicher Gegenstände, wie Wolken oder Nebel, ist es bekannt, fraktale Verfahren anzuwenden. Eine Fraktale ist eine Struktur die eine Ähnlichkeit auf allen Massstabsebenen besitzt. Deshalb findet man beim Vergrössern der Struktur das gleiche Motiv auf einer niedrigeren Massstabsebene wieder. Eine Fraktale ist dadurch gekennzeichnet, dass man ihre fraktale Dimension mit der topologischen Dimension vergleichen kann. Daher hat eine Gerade eine topologische Dimension von 1 und eine Ebene eine Dimension von 2. Beim Vergleich einer fraktalen Struktur mit einem Parameter, wird eine fraktale Dimension zwischen 1 und 2 haben, je nachdem ob sie die Ebene mehr oder weniger ausfüllt. Dies wird beispielsweise in der 1 erläutert, die eine Konstruktion mit fraktaler Struktur zeigt: wenn man das mit 1 bezeichnete Segment 1 in drei Segmente mit einer Länge 1/3 aufteilt und man das Mittelsegment durch zwei andere Segmente mit der Länge 1/3 ersetzt, erhält man die mit 2 bezeichnete Struktur 2. Wiederholt man nun den Vorgang für jedes neue Segment und das auf allen Maßstabsebenen, dann erhält man die mit 3 bezeichnete Struktur. Diese Struktur zeigt durch ihre Konstruktion Ähnlichkeiten auf allen Massstabsebenen und eine Dimension von 1,2.
  • Das Verfahren zur Erzeugung texturierter Videobilder, gemäß der vorliegenden Erfindung, benutzt eine fraktale Interpolationsfunktion, die es erlaubt in Echtzeit eine mikroskopische Textur zu erzeugen unter Berücksichtigung der Bildqualität, insbesondere eines hoch aufgelösten Bildes. Diese fraktale Funktion muss auch mehrere Arten von Grundtexturen erzeugen können, wie natürliche Texturen von der Art her wie Nebel, Wolken oder ähnlichem, Texturen wie Stoff, Marmorierung oder ähnlichem und Texturen, die aus geometrischen Motiven zusammengesetzt sind und sich auf allen Massstabsebenen wiederholen.
  • Demzufolge ist die angewandte Funktion der fraktalen Interpolation eine Funktion Fbm (Fractional Brownian motion) und ist beispielhaft durch die folgende Rechenformel definiert:
    Figure 00070001
  • Mit r > 1: Lückenhaftigkeit oder Unregelmässigkeitsfaktor.
    H = (3 – D), wobei D die gewünschte fraktale Dimension ist.
    N ist ein festgelegter Parameter, um eine Auflösung genau nach Pixel oder auf den Bildpunkt bezogen zu erhalten und
    Spln(xy) ist die Interpolation durch den B-Spline auf den wirklichen Koordinatenpunkt (x, y) einer Vernetzung erzeugter Punkte auf ganzen Koordinaten. Die Werte dieser Vernetzungspunkte sind zufallsbedingter oder deterministischer Art gemäß der gesuchten Fraktalen.
  • Im Einklang mit der vorliegenden Erfindung muss die Funktion F0 so definiert werden, dass man Bilder von der Grösse W × L erzeugen kann, wobei W der Anzahl von Punkten pro Linie und L der Anzahl aktiver Linien entspricht. Im Rahmen der vorliegenden Erfindung, die darin besteht Videobilder zu erzeugen, kann das Bild eine Grösse von 720 × 576 bis zu Hochauflösung 1920 × 1250 haben. Um diesen Auflösungsbereich zu erreichen, teilt man den Bildschirm in Nbc = Bl × Bh Blöcke auf mit der Grösse dl × dh Pixeln, Bl stellen die Blöcke in der Breite dar und Bh die Blöcke in der Höhe, wie es in der 2 gezeigt wird. In diesem Fall bilden die Blockkanten Npt = (Bl + 1) × (Bh + 1) Punkte der ganzen Koordinaten von (0, 0) bis (Bl, Bh), wie in der 2 dargestellt wird. Somit für einen Punkt (xi, yi) des Bildschirms, wobei xi zum Intervall [0, W – 1] und yi zum Intervall [0, L – 1] gehört, rechnet man F(x, y) mit.
  • Figure 00080001
  • Man kann also die Funktion Spln0 definieren, wenn man die Werte zu Npt Punkten der ganzen Koordinaten (0, 0) bis (Bl, Bh) kennt.
  • Nach der Rechenformel (1) muss man rechnen Spln (rkx, rky) Mit r > 1 und k > 0. Dadurch überschreitet man den Auflösungsbereich von Spln0 der [0, Bl] × [0, Bh] ist. Um dies zu tun, verlängert man den Auflösungsbereich von Spln0, indem man ihn in x und in y periodisch macht und daher ist:
    Spln (Bl, i) = Spln (0, i) für alle i ∊[0, Bh]
    Spln (j, Bl) = Spln (j, 0) für alle j ∊[0, Bl]
    und
    Spln (x, y) = Spln (x + k*Bl, y + l*Bh)) für alle k und l ∊ N
    Zur Berechnung des Spln (rkx, rky) genügt es, die Werte des Paares (rkx, rky) in die Gesamtrechnung zu überführen [0, Bl] × [0, Bh].
  • Andererseits ist die gewählte Funktion Spln0 eine kubische Spln0 Funktion, um mikroskopische Texturen zu erhalten, die möglichst gleichförmig sind, besonders wenn es sich um Nebel oder Wolken handelt. In diesem Fall benutzt man eine Interpolationsfunktion mit 16 Stützpunkten, um jede Bruchstelle im Bild zu vermeiden. Somit kennzeichnet sich die Berechnung des Wertes in einem Punkt Pxy durch:
    Figure 00090001
    mit
    Figure 00090002
    und MB, die Matrix, welche die Berechnung der Koeffizienten des bikubischen Polynoms erlaubt.
  • Vorzugsweise kann MB angegeben werden durch:
    Figure 00090003
    wenn man die folgende Schreibweise benutzt:
    Figure 00090004
    U = MBXUnd V = MBYDemnach schreibt sich Spln (Px,y) = UTPV (3)
  • Wobei der Operator T transponiert bedeutet.
  • Führt man eine Vernetzung des Bildschirms mit Npt Punkten durch, erhält man eine Gesamtheit von Nbc Matrizen P, die in einer Tabelle P[] mit der Dimension Nbc ablegbar sind.
  • In diesem Fall errechnet sich der Index I in der Tabelle P[] der zu wählenden Matrix für einen Punkt (xj, yj) der Bildfläche auf die folgende Weise: I = (xj div dl) + Blx (yj div dh)
  • Wobei der Operator „div" ganzzahlige Division bedeutet.
  • Wie oben definiert, beträgt der Abstand zwischen P11 und P21 dl Pixel und der zwischen P11 und P12 dh Pixel. Der Vektor X kann also nur dl Werte annehmen und der Vektor Y nur dh Werte. Es ist demnach möglich, die dl Vektoren U vorauszuberechnen, ebenso wie die dh Vektoren V derart, dass die Berechnung des Spln0 in einem Punkt nur die Vormultiplikation der Matrix P mit dem Vektor U benötigt und die Multiplikation des Ergebnisses mit dem Vektor V.
  • Bezüglich der Parameter N und r der Funktion (1), definiert N + 1 die Anzahl der Berechnungen des Spln0, die man parallel durchführen kann und die Lückenhaftigkeit r bestimmt die geometrische Ausweitung im Frequenzenraum. Bei den höchsten Frequenzen können die Muster des Spln0 nicht kleiner als Bl × Bh Pixels sein, um Rückfaltungseffekte zu verhindern, da Spln0 eine Interpolation durch B-Spline einer Vernetzung von Bl × Bh Punkten ist. Andererseits ist N direkt mit r verbunden.
  • Tatsächlich spezifiziert sich nach den Beziehungen (1) und (2) ein Muster des Spln0 der Breite Bl auf folgende Weise: rN x = 1 für xj = 1 → rN 1/dl = 1 von wo N = logdl/logr
  • Somit wird plus r schwach und plus N erhöht sein. Es ist von Interesse ein schwaches r zu haben, um eine langsamere Ausbreitung im Frequenzenraum zu garantieren und ein schwaches N, um ein Minimum an paralleler Rechenarbeit zu erreichen.
  • Im Rahmen einer texturierten Videobilderzeugung im 4/3 Format kann man einsetzen: N = 5 und r = 2.
  • Nun wird mit Bezug auf die 3 die Stufe zur Erzeugung eines Motivs beschrieben. In diesem Schritt empfängt man am Eingang die fraktale Funktion F0, die während des Schritts zur Erzeugung der mikroskopischen Textur erzeugt wurde und man erhält am Ausgang das Bild einer makellosen Glätte, das heisst ein Bild das nicht auf eine Oberfläche aufgesetzt ist. Dieser Schritt erlaubt das Motiv der Textur zu entwerfen, das mikroskopische Motiv der Textur zu duplizieren, die fraktale Funktion als Phasenrauschen auf dem Motiv einzuführen, die fraktale Funktion als zusätzliches Rauschen auf dem Bild einzuführen, Weben zweier Fadenmotive und auch die Farbverwaltung vorzunehmen.
  • Wie oben erwähnt, kann eine Textur unter makroskopischer und mikroskopischer Form betrachtet werden. Um eine makroskopische Textur zu erzeugen, benutzt man normalerweise eine Stammfunktion. Die obige Stufe erlaubt die Raumaufteilung der zwei Primitiven die P1 und P2 genannt werden, die zum Beispiel aus einer Reptilienhaut oder von zwei Fäden eines Stoffes sein können. Um eine Textur des makroskopischen Typs zu bekommen, können diese Primitiven im Bild in x und in y verdoppelt werden. Die mikroskopische Struktur der Textur, ebenso wie die Abwandlungen der Erscheinungsformen der Primitiven werden erzielt, indem man die fraktale Funktion F0 einführt, die aus dem vorhergehendem Schritt in Form eines korrelierten Rauschens der Phasenlage der Primitiven entstanden ist, oder in Form von korreliertem Rauschen in dem Bild.
  • Die beiden Primitiven P1 und P2 können identische Werte besitzen im Fall, dass nur eine Primitive eingesetzt wird, oder neutrale Werte besitzen, wenn man wünscht, dass die fraktale Erscheinungsform vorherrschen soll.
  • Beim Verfahren der vorliegenden Erfindung benutzt man die oben beschriebene Spline-Funktion zur Berechnung der Primitiven P1 und P2. Wie auf der 3 dargestellt ist, ist jede Primitive durch Npt gekennzeichnet, die man in Funktion der Duplikate durch die B-Spline Funktion interpoliert. Somit stellt das Schema A der 3 die Npt Punkte dar, die P1 kennzeichnen, das Schema B die Npt Punkte die P2 kennzeichnen und das Schema C die makroskopische Struktur, die durch die Duplikation der Motive P1 und P2 erhalten wurden. Man benutzt im Allgemeinen die nachstehenden Funktionen, um eine makroskopische Struktur zu erzielen.
  • Wäre Spln10 die Spline-Funktion mit der Tabelle der Punkte P1 und Spln20 die Funktion Spln0 mit der Tabelle der Punkte P2, dann definiert man die Funktionen M1 und M2:
    M1 (x, y)= Spln1 (rxx + dpxF(x, y)·ryy + dpyF(x, y))
    M2 (x, y) = Spln2 (rxx + dpxF(x, y)·ryy + dpyF (x, y))
    mit rx und ry: Koeffizienten der Duplikation der Motive in jeweils x und y:
    dpx und dpy: Koeffizienten der Phasenverschiebung der Motive in jeweils x und y;
    F(x,y): Wert der fraktalen Funktion auf dem Punkt (x, y)
    M1(x, y) ist der Wert am Punkt (x, y) des Motivs P1, rx mal in x dupliziert, ry in y und phasenverschoben von dpxxF(x, y) in x und dpyxF(x, y) in y. Desgleichen
    M2 (x, y) ist der Wert am Punkt (x, y) des Motivs P2, rx mal in x dupliziert, ry in y und phasenverschoben von dpxxF(x, y) in x und dpyxF(x, y) in y.
  • Ab diesem Schritt der Erzeugung von Motiven, kann man ein Mapping der mikroskopischen oder makroskopischen Textur, die man auf einer Oberfläche erhalten hat, erstellen. Dieses Mapping erhält man, indem man einen Schritt der Wiederholungsprobennahme durchführt. Wiederholungsprobennahme erreicht man, wenn man vorzugsweise ein bekanntes Verfahren einsetzt, das „output to Input" (Ausgang zu Eingang) genannt wird. Dieses Verfahren erlaubt Filtrationsfehler zu verhindern, wenn man die Transformation zwischen den Pixeln zweier Bilder berechnet. Das in diesem Fall verwendete Verfahren zur Umsetzung des Mapping einer Textur auf eine ebene Fläche, wie beispielsweise einen Boden, eine Decke, eine Mauer ... usw., wird unter Bezug auf die 4A bis 4C erläutert. Im vorliegenden Fall hat man eine perspektivische Projektion der texturierten Oberfläche im dreidimensionalen Raum (O, X, Y, Z) auf die Bildschirmebene zur Durchführung ausgewählt. Deshalb ist es notwendig die folgenden Berechnungen durchzuführen:
    • – Positionierung der ebenen Oberfläche im Raum;
    • – Positionierung der Betrachtungsfläche im Raum;
    • – Positionierung des Betrachtungspunktes, der als Konvergenzpunkt im Raum dienen wird.
  • Als Beispiel und mit Bezug auf die 4a bis 4C werden die Berechnungen der Koordinaten des Betrachtungspunktes und der Transformation für ein Mapping einer Textur auf der Decke ausführlich beschrieben. Diese Technik der Positionierung von Gegenständen zur perspektivischen Projektion, bezogen auf den Betrachtungspunkt, wird von dem allseits bekannten Verfahren zur Bildsynthese, das „Strahlenwurf" genannt wird, abgeleitet. Die anderen Ebenen können durch ähnliche Berechnungen oder durch Drehung in Bezug auf die Mitte der Bildfläche erreicht werden.
  • Wie in der 4A gezeigt, übernimmt man die folgende Schreibweise:
    (Oj, Xj, Yj) ist die Ebene der ursprünglichen texturierten Oberfläche. Diese hat die Abmessungen eines Bildes und stammt aus dem Schritt zur Motiverzeugung, das heisst in diesem Koordinatensystem hat der Punkt CO die Koordinaten (O, O), C1(O, L – 1), C2(W – 1, L – 1) und C3(W – 1, O)
    (Oe, Xe, Ye) ist die Bildschirmebene
    (Xpv, Ypv) ist die normale Projektion auf die Ebene (Oe, Xe, Ye) des Betrachtungspunktes, d ist der Abstand zwischen dem Betrachtungspunkt und dem Punkt (Xpv, Ypv).
  • C1' (X1', Y1') ist die perspektivische Projektion von C1 (X1, Y1) auf die Ebene des Bildschirms relativ zum Betrachtungspunkt und C0', C1', C2', C3' die entsprechenden Projektionen von C0, C1, C2, C3.
  • Die texturierten Bilder und der Schirm sind so angeordnet, dass die Bildschirmebene mit der Vorderseite des Raumes, der das Studio symbolisieren soll, zusammen fällt, also zum Beispiel:
    C0' = C0
    C3' = C3
    C1' = C2 sind symmetrisch in Bezug zur Achse, die den Bildschirm senkrecht mittig schneidet.
  • Der Punkt (Xpv, Ypv) liegt auf der Achse die den Bildschirm senkrecht mittig schneidet, der Beobachter befindet sich senkrecht zur Achse die den Bildschirm senkrecht mittig schneidet.
  • Man muss nun erhalten Ypv, d und das Verhältnis, das die projizierten Punkte auf (Oe, Xe, Ye) und die der Ebene (Oj, Xj, Yj) ausliest.
  • Von oben betrachtet kann man in der 4B die Beziehungen zu den folgenden Winkeln ableiten:
    Figure 00140001
  • Ebenso kann man aus der Seitenansicht der 4C die folgende Beziehung ableiten:
    Figure 00140002
    Figure 00150001
  • Ausserdem berechnet man für einen Bildschirmpunkt (X', Y'), der im Trapez (C0', C1', C2', C3') enthalten ist, die Koordinaten des Quellpunktes (X, Y) der Texturebene durch folgendes System:
    Figure 00150002
  • Zusätzlich zur Ausführung des Überzugs des texturierten Bildes auf einer Oberfläche ist es auch möglich einen Tiefeneffekt hinzuzufügen. Diesen Effekt erzielt man durch Abschwächung der Helligkeit des Punktes auf der Oberfläche, entsprechend seiner Entfernung in Bezug auf den Betrachtungspunkt. Es ist bekannt, dass die Intensität der diffusen Reflektion folgendermassen gegeben ist:
    I = Ij·kd cos τ mit
    Ij = Intensität der einfallenden Helligkeit
    Kd = Koeffizient der Reflexionskraft der Oberfläche und
    cos τ ist gleich dem Skalarprodukt zwischen dem Vektor des einfallenden Strahls I und n der Normalen zur Oberfläche am Punkt P.
  • Daraus ergibt sich, dass die Intensität des diffusen Lichts umgekehrt proportional zum Quadrat der Entfernung Spv zwischen der Oberfläche und dem Betrachtungspunkt abnimmt. Diese Entfernung stellt sich wie folgt dar:
    Figure 00160001
  • Damit der Tiefeneffekt besser wahrgenommen wird, ist es gut, wenn die Abschwächung der Helligkeit zur Tiefe der Oberfläche überwiegt und zwar die Termen in Y im Verhältnis zur seitlichen Abschwächung der Helligkeit. Dazu kann man die Termen X im Verhältnis zu den Termen in Y vernachlässigen. Drückt man X als Funktion von Y' aus, so wie oben in der Funktion distSPV definiert und der vorangegangenen Vereinfachung, dann erhält man die nachstehende Formel der Abschwächung als Funktion der Y':
    Figure 00160002
    mit C: Normierungskonstante
  • Gemäß einer weiteren Eigenschaft der vorliegenden Erfindung kann man mit Hilfe der erzielten Elemente am Ausgang des Schrittes der Wiederholungsprobennahme die Hervorhebung von Wolken erzielen, der Schritt zur Wiederholungsprobennahme ergibt eine Bildsynthese, die beispielsweise eine wolkige Decke unter Berücksichtigung der Lichtabsorption darstellt. Auf der Ebene der Wiederholungsprobennahme nimmt man am Eingang ein Bild das am Ausgang des Schrittes zur Erzeugung von Motiven erzielt wurde, das die Merkmale einer fraktalen Oberfläche besitzt. Bei jedem Pixel dieses Bildes ordnet man eine proportionale Dicke dem Pixelwert zu. Das fraktale Bild, das aus dem Schritt zur Motiverzeugung stammt, dient dazu, eine räumliche Überdeckung zu erzeugen, deren Oberfläche fraktal sein wird. Diese räumliche Überdeckung wird nun im Raum positioniert (0, X, Y, Z), wie die oben beschriebene Decke. Auch in diesem Fall ist die Berechnungstechnik aus dem „Strahlenwurf" abgeleitet, wie beim Überziehen eines texturierten Bildes auf einer Oberfläche beschrieben wurde. Dieser Schritt ist insbesondere in den 5A und 5B dargestellt.
  • In der 5A ist der angegebene Graupegel tatsächlich proportional zur Lichtabsorption durch die Wolke hindurch und kann in der folgenden Formel ausgedrückt werden: ng ist proportional zu
    Figure 00170001
    (α·d1(s) + β·d2(s))ds mit α und β: Normierungskonstanten
  • Ein Verfahren den obigen Term zu lösen besteht darin, das Integral zu diskretisieren, um es in eine Summe zu wandeln, die man je nach Abtastung der Pixel bewertet, wie in der 5B dargestellt ist. Man bearbeitet also Spalte für Spalte, beginnend mit der Horizontlinie in Richtung der oberen Punkte des Bildschirms. Für jedes Pixel C' des Bildschirms berechnet man die Koordinaten seiner Quellpunktes C auf der texturierten Ebene, wie oben beschrieben. Der Wert des fraktalen Bildes in C ergibt dann die Wolkendicke h. Man berechnet dann die Projektion der Höhe h auf dem Bildschirm he, damit man die Anzahl der Pixel auf dem Bildschirm kennt, die von der Lichtabsorption betroffen sind und in die Vertikale von C eindringen.
    Figure 00170002
  • Betrachten wir nun das Bildschirmsegment ((X', Y'), (X', Y' – he)]. Somit berechnet man für jeden Punkt des Segments C'' (X', Y'') (mit Y'' ϵ(Y', Y' – he]) das Element: Δng = exp(α·d1(Y', Y'', h) + β·d2(Y', Y'', h))
  • Das erhaltene Term wird dann zum Wert des Pixel C " hinzugezählt. Somit werden, genau so schnell wie man von der Horizontallinie zum oberen Teil des Bildschirms aufsteigt, mehrere Elemente Δng in C'' berechnet und kommen zum Pixelwert hinzu. Man erhält auf diese Weise eine Annäherung der Exponentialfunktion, deren visuelles Ergebnis tatsächlich zufriedenstellend ist.
  • Das in C'' berechnete Element Δng bleibt indessen komplex, denn es bezieht sich auf die Funktion (exp) und auf die Berechnung von α, d1 + β, d2, die durch die folgende Formel ausgedrückt wird:
    Figure 00180001
  • Um die Funktion (exp) materiell einsetzen zu können, erstellt man eine Tafel (exp[]) deren Grösse vorbestimmt werden kann. Zur Vereinfachung haben wir diese Tafel auf 1024 Werte begrenzt, ohne dabei Verzerrungen zu beobachten. In diesem Fall ergibt α·d1 + β·d2 dann den Index der Tafel exp[] mit den Standardisierungskoeffizienten α und β, die eine Staffelung der Werte von α d1 + β d2 im ganzen Bereich gestatten [0–1023].
  • Zusätzlich zu den obigen Rechenvorgängen, die Bilder mit einer Leuchtdichte in 10 Bit oder 12 Bit Kodierung liefern, ist es möglich am Ausgang des Schrittes zur Motiverzeugung ein zusätzliches Datenbit pro Pixel einzusetzen, um zu präzisieren, ob das Pixel die Motivfarbe P1 oder die des Motivs P2 erhält. In diesem Fall wählt ein Bit den LUT (Look Up Table) (Nachschlagetabelle) der Farben für jedes Pixel aus und die 10 verbleibenden Bits stellen den Indikator für die Farbe dar.
  • Nun wird die Anwendung der verschiedenen, oben beschriebenen, Schritte zur Erzeugung eines Fernsehbildes mit 720 × 576 oder 4:2:2 beschrieben.
  • Für ein Fernsehbild im Format 720 × 576 hat man: L = 576 und W = 720. Dies führt zur Wahl von:
    Bl = 12, Bh = 9
    Dl = 60, Dh = 64
    Npt = 130, Nbc = 108
  • Was die Werte von r und von N betrifft, so wählt man vorzugsweise das Zahlenpaar r = 2 und N = 5.
    R = 2 ist der beste Wert für r, um besser erkennen zu können, wie sich die Splinefunktion bei den verschiedenen Versuchen abbildet.
    R2k: Potenz 2, die Multiplikationen mit den r2k errechnen sich durch Verschiebung auf die Bits bei einem Einsatz in einem Schaltkreis.
    R = 2 ⇒ N = 5. In diesem Fall sind sechs Spln0 Berechnungen notwendig, um in jedem Pixel F0 zu bekommen, was für den Einsatz in einem integrierten Schaltkreis vernünftig ist.
  • Für jeden Parameter H kann man schnell die sechs Multiplikationsterme r–kH vorausberechnen, die man in einer Tabelle, die C[] genannt wird, ablegen kann.
  • Auf der Grundlage der obigen Daten findet man im Anschluss die verschiedenen Algorithmen für die Berechnung von F0 zur Erzeugung von Motiven, dann für die Wiederholungsprobennahme des Motivs mit oder ohne Hervorhebung im TV-Format.
  • Berechnungsalgorithmus von F0 (für ein 4:2:2 Bild)
  • Man betrachtet die Tabelle P[]als gespeichert und U[] und C[] als vorberechnet.
    POUR yi VARIANT de 0 à 575, FAIRE
    POUR xi VARIANT de 0 à 719, FAIRE
    F = 0;
    POUR k VARIANT de 0 à 5 FAIRE
    x = xi * 2<k>;
    y = yi * 2<k>;
    indice_u = x mod 60;
    indice_v = y mod 64;
    indice_p = [(x div 60) mod 12] + 12 * [(y div 64) mod 9];
    Spln = U[indice_u] * P[indice_p] * V[indice_v];
    F = F + C[k] * Spln;
    fin_de_FAIRE
    afficher F;
    fin_de_FAIRE
    fin_de_FAIRE
    fin.
    wobei mod der Modulooperator und div die ganzzahlige Division ist
  • Algorithmus zur Motiverzeugung (für ein 4:2:2 Bild)
    • POUR yi VARIANT de 0 à 575, FAIRE
    • POUR xi VARIANT de 0 à 719, FAIRE
    • X = rx*xi + dpx*F(xi, yi);
    • Y = ry*yi + dpy*F(xi, yi);
    • M1 = Spln1 (X, Y);
    • M2 = Spln2 (X, Y);
    • SI ((M1 > Seuil) et (M2 > Seuil)) alors
    • SI (Duplicat_Impaire (X, Y)) alors R = M1, Couleur = Couleur(1);
    • SINON R = M2, Couleur = Couleur(2);
    • Fin_de_SI_SINON
    • SINON
    • SI (M1 > M2) alors R = M1, Couleur = Couleur(1);
    • SINON R = M2, Couleur = Couleur(2);
    • Fin_de_SI_SINON
    • Fin_de_SI_SINON
    • R = R + a * F(xi, yi);
    • afficher R au pixel (xi, yi);
    • fin_de_FAIRE
    • fin_de_FAIRE
    • fin. wobei: a der Koeffizient des additiven korrelierten Rauschens ist.
  • Farbe() ist eine Funktion, die die Farbe vom Motiv 1 oder Motiv 2 abweist,
    Duplicat_Impaire() ist eine Testfunktion für Webmuster
  • Algorithmus zur Berechnung der Wiederholungsprobennahme (für ein 4:2:2 Bild)
  • Man betrachtet die Tabellen Y1[ ] et Y2[ ] als vorausberechnet, ebenso die Werte Ypv et d.
    POUR Y' VARIANT de 0 à 575, FAIRE
    POUR X' VARIANT de 0 à 719, FAIRE
    SI (Y' < Y1') alors
    Y = Y1[Y'];
    X = Y2[Y'] * (X' – Xvp) + Xvp;
    SI ((X < 720) et (X > 0)) alors
    Chercher sur le plan texturé le pixel (X, Y) et l'afficher sur l'ecran en (X', Y');
    SINON afficher_fond (X', Y');/* (X', Y') est à droite ou à gauche du trapéze (C0', C1', C2', C3') */
    fin_de_SI_SINON
    SINON afficher_fond (X', Y');/* (X', Y') est en dessous du
    trapéze (C0', C1', C2', C3') */
    fin_de_SI_SINON
    fin_de_FAIRE
    fin_de_FAIRE
    fin.
    afficher fond (X', Y') affichera au pixel (X', Y') une valeur de fond.
  • Algorithmus zur Motiverzeugung (für ein 4:2:2 Bild)
  • Man betrachtet die Tabellen Y1[ ] et Y2[ ] Y3[ ], Abschwächung [ ] und d3[ ] als vorausberechnet, ebenso die Werte Ypv et d
    POUR X' VARIANT de 0 à 719, FAIRE
    POUR Y' VARIANT de 575 à 0, FAIRE
    SI (Y' < Y1') alors
    Y = Y1[Y'];
    X = Y2[Y'] * (X – Xvp) + Xvp;
    SI ((X < 720) et (X > 0)) alors
    h = valeur_pixel (image_texturée, X, Y);
    SI (Mise_en_relief) alors
    he = h * Y3[Y'];
    adresse(expo[ ]) = adresse(exp[ ]) + beta h;
    POUR Y'' VARIANT de Y' à Y' –he, FAIRE
    DELTA ng = expo[d3[Y', Y'']];/·calcul de DELTA ng */
    ng = valeur pixel (plan écran, X', Y'');
    ng = ng + DELTA ng;/* discretisation de l'intégrale */ afficher(plan_écran, X', Y'', ng);
    fin_de_FAIRE
    SINON afficher(plan_écran, X', Y', h*attenuation [Y']);/* sans mise en relief */
    fin_de_SI_SINON
    SINON afficher(plan_écran, X', Y', valeur_fond); ;/* (X', Y') est à droite ou à gauche du trapéze (C0', C1', C2', C3') */
    fin_de_SI_SINON
    SINON afficher(plan_écran, X', Y', valeur_fond);/* (X', Y') est en dessous du trapéze (C0', C1',C2', C3') */
    fin_de_SI_SINON
    fin_de_FAIRE
    fin_de_FAIRE
    fin.
    afficher(buffer, X', Y', val) affichera au pixel (X', Y') du plan "buffer" la valeur 'val'.
    valeur_Pixel(buffer, X, Y) renvoie la valeur au point (X, Y) du plan "buffer".
  • Es wird nun insbesondere mit Bezug auf die 6 bis 17 eine Umsetzung der Vorrichtung zur Inbetriebnahme des oben beschriebenen Verfahrens für den Fall, dass r = 2 und N = 5 beschrieben.
  • In diesem Fall ist die fraktale Funktion F(x, y) wie folgt: F(x, y) = [r<0> Spln (x, y) + r<–H> Spln (rx, ry)]+ [r<–2H> Spln (r<2>x, r<2>y) + r<–3H> Spln (r<3>x, r<3>y)] + [r<–4H>Spln (r<4>x, r<4>y) + r<–5H> Spln (r<5>x, r<5>y)]. (6)
  • Somit genügt es zur Berechnung des Spline (rkx, rky) die Werte des Paares (rkx, rky) in die Gesamtheit [0, Bl × [0, Bh] zu übernehmen.
  • In der 6 wird der besondere Schaltkreisverbund dargestellt, der mit FirMat bezeichnet ist und insbesondere erlaubt die Spline-Funktion durchzuführen. Ein erster Schaltkreis erlaubt eine erste Matrixberechnung durchzuführen, nämlich die Multiplikation der Matrix:
    [P00 P01 P02 P03]
    [P10 P11 P12 P13]
    mit dem Vektor
    [X0]
    [X1]
    [X2]
    [X3]
  • Um dies durchzuführen, werden die Koeffizienten P00 P01 P02 P03 und P10 P11 P12 P13 im RAM-Speicher abgelegt, während die Werte der Vektoren X0 X1 X2 X3 an den Eingang des Schaltkreises selbst geschickt werden können, oder in einem anderen RAM-Speicher abgelegt werden können.
  • Der Wert X0 wird zuerst in einem Vervielfacherschaltkreis mit P0 multipliziert und das Ergebnis wird im Register r0 abgelegt, desgleichen X1 wird mit P01 multipliziert und das Ergebnis in einem Register r2 abgelegt und X2 wird mit P02 multipliziert und das Ergebnis in einem Register r2 abgelegt und X3 wird mit P03 multipliziert und das Ergebnis in einem Register r3 abgelegt. Desgleichen wird X0 mit P10 multipliziert und das Ergebnis in r'0 abgelegt, X1 wird mit P11 multipliziert und das Ergebnis in r'1 abgelegt, X2 wird mit P12 multipliziert und das Ergebnis in r'2 abgelegt, X3 wird mit P13 multipliziert und das Ergebnis in r'3 abgelegt. Danach werden die gespeicherten Werte in r0 und r1 addiert und in r''1 abgelegt, während die in r2 und r3 gespeicherten Werte addiert und in r''0 abgelegt werden. Die Gesamtheit der beiden Werte aus r "0 und r''1 werden addiert und abgelegt, um R0 zu ergeben. Desgleichen werden die in r'0 und r'1 gespeicherten Werte addiert und im Register r'1 abgelegt, während die in r'2 und r'3 gespeicherten Werte addiert, um einen gespeicherten Wert r''2 zu ergeben. Die in r''2 und r''3 gespeicherten Werte werden addiert, um den Wert R1 zu ergeben. Die so erhaltenen Werte R0 und R1 werden danach einer Multiplikation unterzogen. In diesem Fall wird R0 mit dem Koeffizienten Y0 multipliziert, der erhaltene Wert wird in einem Register S0 und R1 abgelegt und mit dem Koeffizienten Y1 multipliziert. Der erhaltene Wert wird in einem Register S1 abgelegt und dann werden die gespeicherten Werte S0 und S1 addiert, um den Wert S zu ergeben. Zur Durchführung der Spln () Funktion in (3) werden also zwei Schaltkreise, wie in der 6 gezeigt, eingerichtet. In diesem Fall gibt der Schaltkreis FirMat 1 die Werte R0, R1 und S aus und erhält am Eingang die Werte R2 × U2 + R3 × U3, die vom Schaltkreis FirMat2 stammen. Der Schaltkreis FirMat 2 gibt auch die Werte R3 und R2 aus. Die beiden Schaltkreise FirMat 1 und FirMat 2 erhalten am Eingang die Adressen und Koeffizienten V0, V1, V2, V3 die insbesondere vom Benutzerprozessor stammen. Somit erlauben die 2 kaskadierten Schaltkreise FirMat, wie in der 6 dargestellt, die Matrixberechnung durchzuführen, indem die Gleichung (3) wie folgt aufgelöst wird:
    Figure 00250001
  • Nun wird unter Bezug, insbesondere auf die 7, 8, 9 und 10, ein Schaltkreis zur Erzeugung der fraktalen Funktion beschrieben. Die fraktale Funktion wird erzeugt, indem man einen Schaltkreisteil, oder auf Englisch „Hardware", der mit Schaltkreisplatine in der 7 bezeichnet ist, und die Daten aus dem Prozessor 1 in dem Teil, das in der 7 mit Aussen-Schaltkreisplatine bezeichnet ist, benutzt. Vereinfacht ausgedrückt beinhaltet der Schaltkreis zur Erzeugung der fraktalen Funktion einen Rechenblock 2, der es erlaubt die Funktion F(X, Y), die durch die Beziehung 4 gegeben ist, durchzuführen. Dieser Rechenblock ist aus sechs FirMat Schaltkreisen zusammengesetzt, wie die Fig. zeigt.
  • In dem in der 7 gezeigten Generator berechnet jedes FirMat Schaltkreispaar, das heisst FirMat1 und FirMat2; FirMat3 und FirMat4; FirMat5 und FirMat6, für jedes Pixel zwei Termen Spln(). Die drei Ausgänge dieser Paare, jeweils die Ausgänge von FirMat2, FirMat4 und FirMat6, werden an den Eingang eines Ausgleichsschaltkreises 3 gelegt, der später im Einzelnen noch beschrieben werden wird. Andererseits beinhaltet der Teil „Hardware" des Generators einen Sequenzer 4, der ebenfalls anschliessend ausführlich beschrieben werden wird. Die an die Eingänge des Sequenzers, des Ausgleichschaltkreises und des Rechenblocks für den Spln() geschickten Daten kommen hauptsächlich von einem Prozessor 1 und aus externen Mitteln, wie bereits oben beschrieben wurde. Wie auf der 7 dargestellt, erhält man am Ausgang des Ausgleichsschaltkreises 3 die fraktale Funktion F.
  • Es wird nun in knapper Form unter Bezugnahme auf die 8 ein Verfahren zur Umsetzung des Sequenzers 4 beschrieben. Der Sequenzer 4 verteilt an jedes Paar der FirMat Schaltkreise im Rechenblock 2 die Parameter u, v, p in Abhängigkeit der Bildpixel. Der Sequenzer in der 8 ist an die Fernsehbildbearbeitung im Format 720 × 576 angepasst, wie oben beschrieben wurde und wo der Parameter r auf 3 festgelegt wurde. Aus diesem Grund werden die Multiplikationen mit den rk durch Versatz der Bits nach links durchgeführt. Der Sequenzer in der 8 beinhalt also einen Punktezähler 10, der nach der Frequenz der Uhr H Pixel zählt und einen Zeilenzähler 11. Der Ausgang des Punktezählers 10 wird an den Eingang der drei Schaltkreise, die eine gleiche Struktur besitzen, geschickt. Somit besteht jeder Schaltkreis aus 2 Registern mit parallelem Versatz 12, 13; 12', 13'; 12'', 13''. Das Register 12 erhält den Wert, der vom Punktezähler 10 ausgegeben wird, während das Register 13 diesen um ein Bit nach links versetzten Wert erhält; das Register 12' erhält diesen um zwei Bit nach links versetzten Wert; das Register 13' erhält diesen um ein Bit nach links versetzten Wert; das Register 12'' erhält diesen um vier Bit nach links versetzten Wert; das Register 13'' erhält diesen um fünf Bit nach links versetzten Wert. Die in den Registern 12 und 13 gespeicherten Werte werden einem Multiplexer 14 zugeführt. Gleichermassen werden die Werte der Register 12' und 13' einem Multiplexer 14' zugeführt und die von den Registern 12'' und 13''ausgegebenen Werte werden einem Multiplexer 14'' zugeführt. Die Multiplexer arbeiten nach der Frequenz 2H. Die von den Multiplexern 14, 14' und 14'' ausgegebenen Werte werden den Teilern 15, 15' und 15'' zugeführt, die eine Teilung durch 720 durchführen. Andererseits wird der Rest dieser Teilung den Teilern 16, 16' und 16'' zugeführt, die eine Teilung durch 60 durchführen. Der Quotient aus der Teilung durch 60, der von den Teilern 16, 16', 16'' stammt, wird in ein Register 17, 17', 17'' geschickt, um einen Teil des Index p zu bilden, während der Rest der Teiler 16, 16', 16'' jeweils in die Register 17, 17', 17'' geschickt wird, um den Index u zu bilden. Sobald alle Punkte einer Linie gezählt sind, erhöht der Punktezähler den Linienzähler. Die Ausgänge des Linienzählers 111 werden an drei Schaltkreise mit identischer Struktur geschickt, das bedeutet der Ausgang wird jeweils an eine erste Gesamtheit von zwei Registern 18, 19 geschickt, der Ausgang an eine zweite Gesamtheit von zwei Registern 18', 19' und an eine dritte Gesamtheit von zwei Registern 18'', 19''. Diese Register sind Versatzregister und funktionieren wie die Register 12, 13, 12', 13', 12'', 13''. Auf ähnliche Weise wird der Ausgang der zwei Versatzregister 18 und 19 an einen Multiplexer 20 geschickt, der auf der Frequenz 2H arbeitet, die Ausgänge der Versatzregister 18', 19' werden an den Eingang des Multiplexers 20' geschickt und der Ausgang der Register 18'', 19'' an den Eingang des Multiplexers 20''. Der Ausgang der Multiplexer 20, 20', 20'' wir jeweils an den Eingang eines Teilers 21, 21', 21'' geschickt, die eine Teilung durch 576 durchführen. Der Rest am Ausgang der Teiler 21, 21', 21'' wird an die Teiler 22, 22', 22'' geschickt, die die Teilung durch 64 ausführen. Der Quotient der Teiler 22, 22', 22'' wird an die jeweiligen Register 17, 17', 17'' geschickt, als Teil des Index p, während der Rest am Ausgang der Teiler 22, 22', 22'' an die jeweiligen Register 17, 17', 17'' geschickt wird als Index v. Die Terme u, v, p sind mit den 22-Bit-Adressen verkettet, die für die FirMat Schaltkreispaare des Rechenblocks 2 der 7 bestimmt sind.
  • Nun wird insbesondere mit Bezug auf die 2 ein Ausführungsbeispiel des Ausgleichsschaltkreises 3 der 7 beschrieben. Der Ausgleichsschaltkreis beinhaltet die Register 30, 30', 31, 31', 32, 32', die jeweils die Koeffizienten C0, C1, C2, C3, C4, C5 enthalten, die beim Spln() angewendet werden müssen und vom Rechenblock 2 ausgehen. Genauer gesagt, die Register 30 und 30' werden mit einem Multiplexer 33 verbunden, der mit der Frequenz 2H arbeitet und er Ausgang des Multiplexers 33 wird an den Vervielfacher 33' geschickt, der in seinem anderen Eingang den Spline-Term empfängt, der von den FirMat 1 und FirMat 2 Schaltkreisen stammt. Gleichermassen werden die Register 31 und 31' mit einem Multiplexer 34 verbunden dessen Ausgang an einen Multiplexer 34' geschickt wird, der den Spln()-Term empfängt, der von den FirMat 3 und FirMat 4 Schaltkreisen stammt. Die Register 32 und 32' werden mit dem Eingang eines Multiplexers 35 verbunden, dessen Ausgang mit einem Vervielfacher 35' verbunden wird, der an seinem anderen Eingang den Spln()-Term empfängt, der von den FirMat5 und FirMat6 Schaltkreisen stammt. Die Ergebnisse, die von den Vervielfachern 33' und 34' ausgegeben werden, werden in einem Addierer 36 addiert, dessen Ausgang mit dem Ausgang des Vervielfachers 35' in einem Addierer 37 addiert wird. Die Ergebnisse am Ausgang des Addieres 37 werden in einem ersten Register 38 abgelegt für einen ersten Zug von drei Spln()-Termen, während der Ausgang des Addierers 37 in einem zweiten Register abgelegt wird, für den zweiten Zug von drei Spln()-Termen. Diese Register 38 und 39 arbeiten mit einer Frequenz von 27 MHz. Der Ausgang der Register 38 und 39 wird an den Addierer 40 geschickt, dessen Ausgang in einem Register 41 abgelegt wird, das mit einer Frequenz von 13,5 MHz arbeitet und am Ausgang ein Ergebnis F liefert, nämlich die gewünschte fraktale Funktion.
  • Es wird nun mit Bezug auf die 10, 11 und 12 eine Vorrichtung beschrieben, die es erlaubt das Motiv zu erzeugen, das das oben beschriebene Verfahren benutzt. Diese Vorrichtung beinhaltet eine Teilschaltung oder "Hardware" die mit "Schaltkreisplatine" auf der 10 bezeichnet ist und einem Teil, das es erlaubt von dem Prozessor 1 aus eine gewisse Anzahl Daten zu erhalten, wobei dieser Teil mit „Aussen-Schaltkreisplatine" auf der 10 bezeichnet ist. Der Schaltkreisteil beinhaltet, wie auf der 10 dargestellt, einen Sequenzer 50, einen Rechenblock 60 und einen Ausgleichsschaltkreis 70. Der Sequenzer erhält am Eingang Parameter, die vom Prozessor 1 kommen, die Koordinaten eines Punktes, die von den Linienzählern und Punktezählern kommen und den Wert der fraktalen Funktion F in diesem Punkt, die vom Schaltkreis zur Erzeugung der fraktalen Funktion stammen. Der Sequenzer 50 erzeugt an seinem Ausgang eine Adresse mit 22 Bit, die für den Rechenblock 60 bestimmt ist, der die Funktionen M1 und M2 erzeugt, wie zuvor bestimmt. Die Werte dieser beiden Funktionen werden gleichzeitig an den Eingang des Ausgleichschaltkreises 70 an einen Schaltkreis zur Wiederholungsprobennahme geschickt. Der auf der 10 dargestellte Rechenblock 60 besteht aus 4 FirMat Schaltkreisen mit der Bezeichnung FirMat 7, FirMat 8, FirMat 9, FirMat 10, in doppelter Anordnung, wie mit Bezug auf die 6 beschrieben wurde. Diese vier FirMat Schaltkreise erlauben es, die Funktionen M1 und M2 auszuführen, wie folgt:
    M1(x, y) = Spln1(rxx + dpxF(x, y), ryy + dpyF (x, y))
    M2(x, y) = Spln2(rxx + dpxF(x, y), ryy + dpyF (x, y))
  • Nun wird mit besonderem Bezug auf die 11 ein Ausführungsbeispiel des Sequenzers 50 beschrieben. Der Sequenzer 50 in der 10 muss die Adresse, die an die FirMat Schaltkreise geschickt wird, berechnen, um die beiden Terme Spln1 und Spln2 zu berechnen. Dazu berücksichtigt er die Parameter rx, ry für die Verdoppelung der Motive und dpx, dpy für die Phasenverschiebung der Motive. Der Sequenzer 50 beinhaltet die Register 500 und 500', die jeweils die Koeffizienten rx beinhalten. Er beinhaltet auch die Register 501 und 501', die die Werte dpy und dpx speichern. Er beinhaltet des Weiteren die Vervielfacher 502, 502', 503, 503'. Der Vervielfacher 502 führt die Multiplikation des Wertes, der vom Zeilenzähler mit dem Wert ry ausgegeben wird, durch und der Vervielfacher 502' führt die Multiplikation des Wertes rx mit dem vom Punktezähler ausgegebenen Wert durch. Der Vervielfacher 503 führt die Multiplikation des Wertes dpy mit der fraktalen Funktion F (x, y) durch und der Vervielfacher 503' führt die Multiplikation von dpy mit der fraktalen Funktion F (x, y) durch. Andererseits werden die Ausgänge der Vervielfacher 502 und 503 an einen Addierer 504 geschickt, während die Ausgänge der Vervielfacher 502' und 503' an einen Addierer 504' geschickt werden. Der Ausgang des Addierers 504 wird an einen Addierer 505 geschickt, der auf seinem anderen Eingang einen Wert Mvty empfängt, der in einem Register 506 gespeichert ist, das eine Vektorbewegung schafft, die es ermöglicht die Textur von Bild zu Bild zu verschieben. Auf gleiche Weise wird der Wert, der vom Addierer 504' ausgegeben wird in einem Addierer 505' mit dem Wert Mvtx addiert, der im Register 506' gespeichert ist. Der am Ausgang des Addierers 505 erhaltene Wert wird an den Teiler 507 geschickt, der eine Division durch 63 durchführt, während der Wert, der vom Addierer 505' ausgegeben wird, in den Teiler 507' geschickt wird, der eine Division durch 60 durchführt. Der Rest der Division durch 64 ergibt den Index v, während der Rest der Division durch 60 den Index u ergibt. Andererseits wird der erhaltenen Quotient am Ausgang des Teilers 507 einem Teiler 508 zugeführt, der eine Division durch 6 durchführt, während der Quotient am Ausgang des Teilers 507' einem Teiler 508' zugeführt wird, der eine Division durch 12 ausführt. Der Rest der Division durch 9 bildet einen ersten Teil des Index p, während der Rest der Division durch 12 den zweiten Teil des Index p bildet. Die Adresse, die aus den Indices p, v, u besteht wird den Schaltkreisen FirMat 7 und 8 und FirMat 9 und 10 zugeführt. Andererseits werden die Quotienten der Division durch 9 und der Quotient der Division durch 12 im Register 510 gespeichert und den programmierten Registern zugeführt, die es erlauben den Boole'schen Wert ungerades Duplikat auszugeben, der an den Ausgleichsschaltkreis 70 gesendet wird. In diesem Fall benutzt man einen L.U.T. (look up table) (Nachschlagetabelle) mit 4 Eingängen, die der Art der Vernetzung entsprechend programmiert sind, die Eingänge sind die Werte 00, 01, 10, 11 und die Ausgänge sind Funktion der Vernetzung.
  • Nun wird mit Bezug auf die 13 ein Ausführungsbeispiel des Ausgleichsschaltkreises 70 beschrieben. Dieser Ausgleichsschaltkreis bestimmt die Textur nach Wahl des Benutzers, das heisst Wahl des Schwellenwertes, Motivwahl P1 und P2, wie in der Beschreibung des Verfahrens erläutert, eventuell Wahl der Webart. Wie in der 12 dargestellt, beinhaltet der Ausgleichsschaltkreis 70 drei Vergleichsschaltkreise 700, 701, 702. Der Vergleichsschaltkreis 700 vergleicht den Wert M1 der aus dem Rechenblock 60 kommt mit einem Schwellenwert. Der Vergleichsschaltkreis 701 vergleicht den Wert M2 der aus dem Rechenblock 60 kommt mit einem Schwellenwert. Der Vergleichsschaltkreis 702 vergleicht die Werte M1 und M2. Genauer gesagt wird der Wert M1 in den Eingang des Vergleichsschaltkreises 700 eingespeist, während der Schwellenwert in den Eingang B eingespeist wird, der Wert M2 wiederum wird in den Eingang des Vergleichsschaltkreises 701 eingespeist, während der Schwellenwert dem Eingang B zugeführt wird und der Wert M1 wird auf die Schwellenwert des Vergleichsschaltkreises 702 gelegt, während der Wert M2 dem Eingang B des Vergleichsschaltkreises 702 zugeführt wird, wobei die drei Vergleichsschaltkreise den A > B Vergleich durchführen. Die Ausgänge der Vergleichsschaltkreise 700 und 701 werden einem Schaltkreis ET 703 zugeführt. Der Ausgang des Vergleichsschaltkreises 702 wird einem Eingang eines Multiplexers 704 zugeführt, der auf seinem anderen Eingang die Information duplicat impaire() empfängt, die am Ausgang des Sequenzers 50, wie oben beschrieben, stammt. Der Multiplexer 704 führt die Weichenstellung zu einer von 703 gegebenen Frequenz aus. Der Ausgang des Multiplexers 704 wird als Taktgeber auf einen Multiplexer 705 gelegt, der an seinem Eingang die Werte M1 und M2 empfängt. Andererseits wird die fraktale Funktion F(x, y) mit Vervielfacher 706 mit einem Koeffizienten a multipliziert, der Ausgang des Vervielfachers 706 wird an den Eingang eines Addieres 707 gelegt, der auf seinem anderen Eingang den Ausgang des Multiplexers 705 empfängt. Das Ergebnis des Addierers 707 wird in einem Register 708 gespeichert. Es wird dem Schaltkreis zur Wiederholungsprobennahme mit einer Frequenz von 13,5 MHz zugeführt. Das Register 708 beinhaltet des Weiteren ein Zusatzbit, das dazu bestimmt ist, entweder die Farbe von P1 oder die Farbe von P2 anzunehmen.
  • Nun wird mit Bezug auf die 13 bis 17 ein Ausführungsbeispiel der Stufe zur Wiederholungsprobennahme beschrieben. Wie oben beschrieben, ist die Stufe zur Wiederholungsprobennahme dazu bestimmt, die Textur zu überziehen, die vom Modul zur Motiverzeugung auf eine perspektivische Ebene ausgegeben wird. Das angewandte Verfahren ist ein bekanntes Verfahren, das "output to Input" (Ausgabe/Eingabe) genannt wird. Andererseits wird man feststellen, dass in einem System, das die Beziehung (4) und (5) liefert, Y von X'' unabhängig ist. Es ist daher möglich in einem Prozessor die Ypv Werte für Y', das von 0 bis (Ypv – 1) variiert, vorauszuberechnen und diese in der Tabelle Y1[] zu speichern. Gleichermassen kann man in einer zweiten Tabelle Y2[ ] die möglichen Werte Ypv, Ypv/Ypv – Y' vorausberechnen, so dass die Suche nach dem Quellpunkt (X, Y) eines Pixels (X', Y') des Trapezes (C0', C1', C2', C3') auf die folgende Formel hinausläuft: X = Y2[Y']·(X' – Xpv) + Xpv Y = Y1 [Y')
  • Entsprechend den am Eingang vom Anwender erfassten Parametern, werden die Tabellen Y1[]Y2[], ebenso wie andere Tabellen Y3[]d3[], die beim Schritt zur Wiederholungsprobennahme benutzt wurden, im Prozessor vorausberechnet und in RAM-Speichern während der Austastzeit abgelegt. Bei der Stufe zur Wiederholungsprobennahme, also von den Koordinaten des Bildpunktes Resultat (X', Y'), berechnet man die Koordinaten des Punktes im Quellbild (Y, X). Daher beinhaltet die Stufe zur Wiederholungsprobennahme, in der 13 dargestellt, folglich die Punktezähler und Linienzähler mit der Bezeichnung 80, die am Eingang eine Taktfrequenz H empfangen und am Ausgang die Koordinaten X', Y' des Bildpunktes Resultat ergeben. Diese Koordinaten werden einem Projektionskreis 90 zugeführt, der anschliessend noch genauer beschrieben werden wird und der am Ausgang die Koordinaten X, Y des Punktes im Quellbild liefert, dieses Quellbild wird im Schaltkreis 100 gespeichert. Wie in der 13 dargestellt ist, kann der Wert des Pixels (x, y) des Quellbildes auf zweierlei Weise benutzt werden. Dies erreicht man, indem man die Daten h, die vom Schaltkreis 100 über einen Multiplexer 101 ausgegeben werden, der durch einen Hervorhebungsimpuls gesteuert wird und dessen beide Ausgänge jeweils eine Tiefen-Abschwächungsschaltung 110 oder einem Berechnungskreis für die Hervorhebungsparameter 120 zugeführt werden. Diese Schaltkreise werden anschliessend noch genauer beschrieben. Wenn man zum Beispiel eine Hervorhebung einer Wolke durchführen möchte, wird der Pixelwert die Dicke der Wolke im Punkt (X, Y). Die Berechnung des Integrals wird also durch Auflösung der diskretisierten Schleife und durch Parallelberechnung erreicht. Dies wird dadurch erreicht, dass man die projizierte Höhe he des h auf der Bildschirmfläche auf einen Wert von 10 begrenzt. Somit benutzt man, wie in der 13 dargestellt ist, 10 Blöcke 130 zur Berechnung des Integral. Wenn man keine Hervorhebung wünscht, wird der Pixelwert (X, Y), der vom Quellbild stammt, an den Tiefen-Abschwächungskreis 110 geschickt. Der Ausgang des Abschwächungskreises 110 wird an den Eingang des Multiplexers 102 gelegt, ebenso wie der Ausgang der 10 Blöcke 130 zur Berechnung des Integral, dieser Multiplexer 102 wird durch dem Hervorhebungsimpuls in Betrieb gesetzt. Der Ausgang des Multiplexers 102 wird an zwei Bildspeicherschaltkreise 103, 104 geschickt. Allerdings sind zwei Bildebenenresultate notwendig, das eine wird berechnet während das zweite angezeigt wird. Die Werte der Punkte der Ebene werden dann durch eine Tabelle 105 geführt, die die Farben speichert. Diese Tabelle 105 bestimmt also die Farben, wie auch den Schlüssel zum Zuschneiden der endgültigen Textur. Bei der vorliegenden Erfindung wird der Schlüssel durch Schwellwertbildung der Helligkeit der Pixel berechnet. Wenn die Helligkeit eines Pixels niedriger als ein vom Benutzer bestimmter Schwellwert ist, wird der Schlüssel des Pixels gleich 64 sein, darüber wird er gleich 939 sein.
  • Nun wird auf ausführlichere Art und Weise ein Ausführungsbeispiel des Projektionskreises 90 erläutert. Wie in der 14 dargestellt, beinhaltet der Projektionskreis 90 also zwei RAM-Speicher 91 und 92, die jeweils die Tabellen Y1 und Y2 speichern, die, wie oben erwähnt, vorausberechnet wurden. Die beiden Speicher empfangen als Adresse den Wert Y' des Punktes. Der Speicher 91 gibt am Ausgang den Wert Y des Pixels des Quellbilds aus, während der Ausgang des Speichers 92 an den Eingang des Vervielfachers 94 gelegt wird, der auf seinem anderen Eingang den Ausgang eines Subtrahiererkreises 93 empfängt. Der Subtrahiererkreis 93 empfängt am Eingang den Wert X' des Bildpunktes Resultat ebenso den Wert Xvp, so wie oben bei der Erklärung des Verfahrens zur Wiederholungsprobennahme angegeben. Andererseits wird der Ausgang des Vervielfachers 94 an den Eingang des Addierers 95 gelegt, der ihn zu dem Wert Xvp hinzuaddiert und der am Ausgang die Koordinate X des Pixels des Quellbildes ausgibt.
  • Wie oben erwähnt, entstammen die Werte Y' und X' einem Linienzähler und einem Punktezähler, die nach der Pixelfrequenz H arbeiten und deshalb werden X und Y nach der Pixelfrequenz H berechnet.
  • Nun wird mit Bezug auf die 15 ein mögliches Ausführungsbeispiel für den Tiefen-Abschwächungskreis beschrieben. Dieser Schaltkreis 110 beinhaltet hauptsächlich einen RAM-Speicher 111. Im RAM-Speicher 111 speichert man die möglichen Ypv Werte für die Abschwächungsfunktion. Für jede Linie Y' zieht man aus dem RAM-Speicher 111 den gewünschten Abschwächungswert und multipliziert ihn im Vervielfacher 112 mit dem Pixelwert, der aus dem Quellbild stammt und mit h bezeichnet ist, was dann einen abgeschwächten Pixelwert, der mit h abgeschwächt bezeichnet ist und der an den Multiplexer 102, dann an Bildresultat geleitet wird.
  • Nun wird mit Bezug auf die 16 ein Rechenblock 120 der Parameter zur Hervorhebung beschrieben, der dazu bestimmt ist die Parallelisierung der Arbeitsvorgänge zur Diskretisierung des Integral, wie im obigen Verfahren beschrieben wurde, zu erlauben. Die Daten he, βHτ und Y'τ sind für jeden Block gleich und werden zur Pixelfrequenz H übertragen. Tatsächlich berechnet jeder Block parallel den Parameter ng für ein Y'' das zwischen Y' und Y'-he liegt. Diese Berechnung erfolgt nicht mehr direkt im Bildergebnis sondern in Pufferregistern, die mit Σ in der 17 bezeichnet sind. Der Zähler durch 10 ist dazu bestimmt, jeden Block über die Entfernung zwischen seinem Punkt Y'' und Punkt Y' zu informieren. Wenn diese mit εvoiei bezeichnete Entfernung, der Wert des Registers Σ in den Ergebnisspeicher geschickt wird, da dieses Register dann den Wert ng zum Punkt (X', Y') enthält. Wenn diese Entfernung εvoiei grösser als he ist, bedeutet dies, dass Y'' niedriger als Y'-he ist und dass daher die Summierung nicht mehr durchgeführt werden kann. Ein Extremwert wird dann an die Adresse des RAM-Speichers d3 geschickt, der am Ausgang des RAM-Speichers expo 136 in der 17 einen Nullwert ausgeben muss. Präziser formuliert: der Schaltkreis 120 beinhaltet also einen RAM-Speicher 121 der die Tabelle mit den Y3 werten speichert, erhält als Adresse den Wert Y' und gibt am Ausgang den entsprechenden Wert Y3 aus, der wiederum an den Eingang eines Vervielfachers 122 angelegt wird, der auf seinem anderen Eingang die Koordinaten h des Bildpixels empfängt und am Ausgang den abgeschwächten Wert he ausgibt. Andererseits wird der mit h bezeichnete Wert an einen Vervielfacher 123 geschickt, der an seinem anderen Eingang einen Parameter β empfängt und am Ausgang den Wert βh ausgibt, der in einer Verzögerungsleitung 124 gespeichert wird, die am Ausgang den verzögerten Wert βhτ ausgibt. Andererseits wird der Wert Y' an eine Verzögerungsleitung 125 geschickt, die am Ausgang den verzögerten Wert Y'τ ausgibt. Des Weiteren beinhaltet der Schaltkreis 120 einen Zähler durch 10 (126), dessen Ausgang mit den Registern 127.1, 127.2, 127.3, ... 12710 , die in Serie geschaltet sind, verbunden ist. Der Ausgang eines jeden Registers ergibt einen Wert εvoiei, wobei i von 0 bis 9 variiert. Dieser Wert entspricht der Entfernung zwischen dem Fliesspunkt Y'' und dem Fliesspunkt Y', wie oben erwähnt.
  • Nun wird mit Bezug auf die 17 ein Ausführungsbeispiel eines Schaltkreises 130 beschrieben, der als Rechenblock des Integrals bezeichnet wird. Dieser Schaltkreis 130 beinhaltet also einen Vergleicherschaltkreis 131, der den Vergleich A > B durchführt und an seinem Eingang A den Wert he empfängt, der vom Schaltkreis 120 zur Berechnung des Parameter zur Hervorhebung stammt. An seinem Eingang B empfängt er den Wert εvoiei, der vom gleichen Schaltkreis 120 stammt. Andererseits beinhaltet der Schaltkreis 130 ein Register 132 mit 14 Bit, das auf den 4 höherwertigen Bits, den Wert εvoiei empfängt, der vom Schaltkreis 120 ausgegeben wird und dem Wert Y'τ auf den 10 niederwertigen Bits, die ebenfalls vom Schaltkreis 120 stammen. Der vom Register 132 ausgegebene Wert, wie auch der Wert 214 werden an den Eingang des Multiplexers 133 geschickt, der durch den Wert, der vom Vergleicherschaltkreis 131 kommt, in Gang gesetzt wird. Der Wert am Ausgang des Multiplexers 133 wird an die Adresse des RAM-Speichers d3 134 geschickt, dessen Werte vorausberechnet wurden. Der Ausgang des RAM-Speichers 134, wie auch der Wert βhτ, die aus dem Schaltkreis stammen, werden an den Eingang des Addieres 135 geschickt. Der Ausgang des Addierers wird als Adresse an einen RAM-Speicher expo 136 geschickt. Der Ausgang des Speichers 136 wird an einen Addierer 137 geschickt, der an seinem anderen Eingang den Ausgang eines Pufferregisters Σ 138 empfängt.
  • Der Eingang des Registers 138 wird vom Ausgang des Addierers 137 versorgt. Der Ausgang des Pufferregisters 138 wird ebenfalls an ein Register 139 geschickt, dessen Ausgang in der Form in Betrieb gesetzt wird, dass er den erhaltenen Wert in Richtung Bildergebnis sendet, sobald εvoiei gleich Null ist.
  • Die oben beschriebenen Schaltkreise sind Ausführungsbeispiele, die eine leichte Umsetzung des Verfahrens nach der vorliegenden Erfindung erlauben. Sie können auf zahlreiche Art und Weise verändert werden, was für den Fachmann selbstverständlich ist.

Claims (7)

  1. Verfahren zur Erzeugung texturierter Videobilder, das eine Stufe zur Erzeugung einer mikroskopischen Textur, die von Benutzerp2arametern ausgehen mit einer fraktalen Interpolationsfunktion zur Erzeugung eines Signals vom Typ fBm „fractional Brownian motion", wobei die erzeugten Bilder eine Grösse L × W haben, wobei W der Anzahl von Punkten pro Linie und L der Anzahl der aktiven Linien entspricht, das Verfahren dadurch gekennzeichnet ist, dass das Bild in Nbc = Bl × Bh Blöcke mit der Grösse dl × dh Pixel aufgeteilt wird, wobei Bl die Anzahl von Blöcken in der Breite und Bh die Anzahl von Blöcken in der Höhe bedeuten und eine fraktale Funktion benutzt wird, die bestimmt wird durch:
    Figure 00390001
    in der r > 1, r bezeichnet die Lückenhaftigkeit oder den Unregelmässigkeitsfaktor, X = (3 – D) wobei D die gewünschte fraktale Dimension ist, N ist ein festgelegter Parameter, um eine Auflösung genau nach Pixel oder auf den Bildpunkt bezogen zu erhalten und Spln(xy) ist die Interpolation durch den B-Spline auf dem wirklichen Koordinatenpunkt (x, y) einer Vernetzung erzeugter Punkte auf ganzen Koordinaten, der Definitionsbereich von Spln0 ist dann [0, Bl] × [0, Bh] und Spln (rkx, rky) berechnet wird, indem die Werte des Paares (rkx, rky) in die Gesamtheit [0, Bl] × [0, Bh] eingebracht werden.
  2. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass die Benutzerparameter zufallsbedingt oder deterministisch sind.
  3. Verfahren nach Anspruch 1 oder 2 dadurch gekennzeichnet, dass die B-spline Funktion eine kubische B-spline Funktion darstellt.
  4. Verfahren nach Anspruch 1, 2 oder 3 dadurch gekennzeichnet, dass es zusätzlich einen Schritt zur Erzeugung eines Motivs beinhaltet, das am Eingang das Bild der fraktalen Funktion und der Benutzerparameter empfängt, wie sie mit dem Verfahren nach einem der Ansprüche 1 bis 3 erhalten werden und am Ausgang eine makroskopische Textur ergeben.
  5. Verfahren nach Anspruch 4 dadurch gekennzeichnet, dass die makroskopische Textur durch Benutzung von zwei Stammfunktionen P1, P2 erzielt wird, wobei jede Stammfunktion durch Npt Punkte gekennzeichnet ist, die durch die B-Spline-Funktion interpoliert wurden und die makroskopische Struktur durch Verdoppelung der Motive der beiden Stammfunktionen P1, P2 erzielt wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5 dadurch gekennzeichnet, dass es zusätzlich einen Schritt zur Wiederholungsprobennahme enthält, die es ermöglicht ein Mapping des texturierten Bildes auf einer Fläche zu verwirklichen.
  7. Verfahren nach einem der Ansprüche 1 bis 6 dadurch gekennzeichnet, dass in das Bild einen Tiefeneffekt eingebracht wird, indem die Helligkeit des Punktes der Oberfläche entsprechend seiner Entfernung im Verhältnis zum Betrachtungspunkt abgeschwächt wird.
DE69534697T 1994-02-04 1995-02-03 Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte Expired - Lifetime DE69534697T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9401269A FR2716061B1 (fr) 1994-02-04 1994-02-04 Procédé de génération d'images texturées et d'effets spéciaux en vidéo et dispositif pour la mise en Óoeuvre du procédé.
FR9401269 1994-02-04

Publications (2)

Publication Number Publication Date
DE69534697D1 DE69534697D1 (de) 2006-01-26
DE69534697T2 true DE69534697T2 (de) 2006-07-20

Family

ID=9459786

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69534697T Expired - Lifetime DE69534697T2 (de) 1994-02-04 1995-02-03 Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte

Country Status (5)

Country Link
US (1) US5796407A (de)
EP (1) EP0667595B1 (de)
JP (1) JP3798827B2 (de)
DE (1) DE69534697T2 (de)
FR (1) FR2716061B1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751293A (en) * 1994-08-24 1998-05-12 Nippon Telegraph And Telephone Corp. Pattern generation method and apparatus for automatic generation of continuous tile patterns along any arbitrary side
US6426779B1 (en) 1995-01-04 2002-07-30 Sony Electronics, Inc. Method and apparatus for providing favorite station and programming information in a multiple station broadcast system
JP3312560B2 (ja) * 1996-07-11 2002-08-12 ヤマハ株式会社 テクスチャマッピング装置
KR20000029715A (ko) * 1997-05-30 2000-05-25 이데이 노부유끼 화상매핑장치및방법과화상생성장치및방법
US6020930A (en) * 1997-08-28 2000-02-01 Sony Corporation Method and apparatus for generating and displaying a broadcast system program guide
US6954897B1 (en) 1997-10-17 2005-10-11 Sony Corporation Method and apparatus for adjusting font size in an electronic program guide display
US6111614A (en) * 1997-10-17 2000-08-29 Sony Corporation Method and apparatus for displaying an electronic menu having components with differing levels of transparency
US6243142B1 (en) 1997-10-17 2001-06-05 Sony Corporation Method and apparatus for displaying time and program status in an electronic program guide
US6518986B1 (en) 1997-10-17 2003-02-11 Sony Corporation Method and apparatus for providing an on-screen guide for a multiple channel broadcasting system
US5973682A (en) * 1997-10-17 1999-10-26 Sony Corporation Method and apparatus for indicating functional areas of a graphical user interface
US6034677A (en) * 1997-10-17 2000-03-07 Sony Corporation Method and apparatus for displaying an electronic program guide
US6424791B1 (en) 1998-03-27 2002-07-23 Sony Corporation System and method for providing selection of timer recording
US20030131356A1 (en) * 1998-12-21 2003-07-10 Andrew M. Proehl Method and apparatus for notification on a broadcast device
US6577350B1 (en) 1998-12-21 2003-06-10 Sony Corporation Method and apparatus for displaying an electronic program guide
US6747660B1 (en) * 2000-05-12 2004-06-08 Microsoft Corporation Method and system for accelerating noise
US20020056104A1 (en) * 2000-06-30 2002-05-09 Tara Burnhouse Folder-style program guide with categories and sub-categories
US6791561B1 (en) * 2000-08-22 2004-09-14 Sony Corporation Method and apparatus for rendering video data
US7250945B1 (en) * 2001-09-07 2007-07-31 Scapeware3D, Llc Three dimensional weather forecast rendering
US20060268014A1 (en) * 2005-05-27 2006-11-30 Jiliang Song System and method for efficiently supporting image deformation procedures in an electronic device
US8208698B2 (en) * 2007-12-14 2012-06-26 Mela Sciences, Inc. Characterizing a texture of an image
US8637718B2 (en) * 2009-09-25 2014-01-28 Auburn University Biomass to biochar conversion in subcritical water
CN102800118A (zh) * 2012-05-31 2012-11-28 新奥特(北京)视频技术有限公司 一种实现材质板特技的方法
CN108510562B (zh) * 2018-02-11 2021-10-01 青岛九维华盾科技研究院有限公司 基于图像分形纹理的数码迷彩图案生成方法
CN111243378B (zh) * 2020-03-17 2022-02-22 广东智媒云图科技股份有限公司 基于分形布朗运动模型的作画方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694407A (en) * 1985-06-11 1987-09-15 Rca Corporation Fractal generation, as for video graphic displays
US4974176A (en) * 1987-12-18 1990-11-27 General Electric Company Microtexture for close-in detail
GB9012273D0 (en) * 1990-06-01 1990-07-18 Rediffusion Simulation Ltd Image generator
JP3063125B2 (ja) * 1990-08-28 2000-07-12 ソニー株式会社 地形データ作成装置
US5416848A (en) * 1992-06-08 1995-05-16 Chroma Graphics Method and apparatus for manipulating colors or patterns using fractal or geometric methods

Also Published As

Publication number Publication date
FR2716061A1 (fr) 1995-08-11
JPH07264473A (ja) 1995-10-13
JP3798827B2 (ja) 2006-07-19
EP0667595A1 (de) 1995-08-16
FR2716061B1 (fr) 1996-03-15
DE69534697D1 (de) 2006-01-26
EP0667595B1 (de) 2005-12-21
US5796407A (en) 1998-08-18

Similar Documents

Publication Publication Date Title
DE69534697T2 (de) Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE69914355T2 (de) Bildverarbeitungsgerät
DE60115034T2 (de) Verfeinerung von dreidimensionalen polygonalen gitterdaten
DE69926986T2 (de) Rechnergrafiken-animationsverfahren und vorrichtung
DE2937282C2 (de)
EP0789328A2 (de) Bildverarbeitungsverfahren zur Darstellung von spiegelnden Objekten und zugehörige Vorrichtung
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE69531536T2 (de) Synthetisches bilderzeugungsverfahren mit sphärischem puffer
DE19807053A1 (de) Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung
DE4224568C2 (de) Vorrichtung und Verfahren zur Bildung der Anzeige eines dreidimensionalen sequentiellen tomografischen Flächenschattierungsbildes
DE3515037A1 (de) Bildsignalverarbeitungsvorrichtung
DE602004012341T2 (de) Verfahren und System zur Bereitstellung einer Volumendarstellung eines dreidimensionalen Objektes
DE4444304C2 (de) Verfahren zum Erzeugen eines zusammengesetzten Videobildes
DE10056978B4 (de) Verfahren zur Erzeugung eines stereographischen Bildes
DE112011105126T5 (de) Texturkartierungsvorrichtung
AT525294A1 (de) Verfahren zum Erzeugen einer hierarchischen Datenstruktur, hierarchische Datenstruktur sowie Verfahren zum Streamen von dreidimensionalen Objekten
DE69936029T2 (de) Methode und verfahren zur erzeugung von einzelbildern aus einer sequenz von quellenbildern durch herstellung eines oder mehrerer direkt vor den quellenbildern sich befindlichen zwischenbildern
DE3837068B4 (de) Bildverarbeitungsverfahren zur Gewinnung eines Schattenbildes
DE69830572T2 (de) Verbesserung an künstlicher bilderzeugung
DE4100691A1 (de) Verfahren zur darstellung eines dreidimensionalen modells
EP0213683B1 (de) Verfahren und Anordnung zur Erzeugung von Zwischenbildsignalen aus Referenzbildsignalen mit verringerter Bildfrequenz
DE3825539C2 (de) Einrichtung u. Verfahren zum Erzeugen schattierter Werte von graphischen Objekten auf einer Anzeigeeinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 667595

Country of ref document: EP

Representative=s name: WAGNER & GEYER PARTNERSCHAFT PATENT- UND RECHTSANW