Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

11 Ausgewählte Algorithmen der Computergraphik Digitale Geometrie Gebiete und Konturen Farbmodelle Renderalgorithmen Schnelle Multiplikation Fast Fourier.

Ähnliche Präsentationen


Präsentation zum Thema: "11 Ausgewählte Algorithmen der Computergraphik Digitale Geometrie Gebiete und Konturen Farbmodelle Renderalgorithmen Schnelle Multiplikation Fast Fourier."—  Präsentation transkript:

1 11 Ausgewählte Algorithmen der Computergraphik Digitale Geometrie Gebiete und Konturen Farbmodelle Renderalgorithmen Schnelle Multiplikation Fast Fourier Transform

2 22 Kapitel 7.4 Definition Bild R:= {(x,y)  Z2, 0  x  a, 0  y  b} B: R  [0,255]3, RGB-Farbraum

3 33 Farbmodelle

4 44 Vier- und Achtnachbarntopologie

5 55 Tracer-Algorithmus

6 66 Streckenrasterung

7 77 Bresenham-Algorithmus Algorithmus Bresenham_Haarstrecke_erster Oktant input (dx,dy) ; {Input Differenzen 0  dy  dx} x := 0; y := 0 ; abweichung := - dx ; {Initialisierung} while ( abweichung < 0) and (x <= dx ) do begin { Zeichne das erste Linienstück mit Ordinate 0 } abweichung := abweichung + 2*dy ; plot (x,y) ; inc(x) ; end ; abweichung := abweichung - 2*dx ; inc(y); { Schleife für Ordinaten von 1 bis dy - 1 } while (y < dy ) do begin while (abweichung < 0) do { eine Ordinate abhandeln } begin abweichung := abweichung + 2*dy ; plot (x,y) ; inc(x) ; end ; abweichung := abweichung - 2*dx ; inc(y) ; end ; while ( x  dx ) do begin { Zeichne das Linienstück mit Ordinate dy } abweichung := abweichung + 2*dy ; plot (x,y) ; inc(x); end ; end ;

8 88 Erläuterungen

9 99 Bresenham Achtelkreis Bresenham_Achtelkreis (r: integer {r Radius}); x := 0; y := r ; control := 1-r ; while x<= y do begin plot(x,y); inc(x); if control>=0 then begin dec(y) ; control := control - shl(y) end; control := control + shl(x) + 1; end; {while} end;

10 1010 Schnelle Multiplikation „Klassische“ Algorithmen: O(n²) Rückführung auf die serielle Addition  Durch Zerlegung „3M“: O(nld(3) )  O(n 1.585)) U = (Ahigh + Alow)(Bhigh + Blow) V = Ahigh * Bhigh; W = Alow * Blow A*B = V*22p + (U-W-V)*2p + W [Karatsuba, 1962] Drei kurze statt vier kurzen oder zwei langen Multiplikationen (Ausarbeitung Matthias Bogaczyk)

11 1111 Strassen-Algorithmus Schnelle Multiplikation

12 1212 Polynommultiplikation  A(x)=  0  k<n akxk, B(x)=  0  k<n bkxk, C(x)=  0  k<2n-1 ckxk entspricht genau der Faltung der beiden Vektoren A und B  Beispiel für zwei Vektoren A und B der Länge n: c0 = a0b0 c1 = a0b1 + a1b0 c2 = a0b2 + a1b1 + a2b0 cn-1 = a0bn-1 + a1bn-2 +... + an-2b1 + an-1b0 cn = 0a0 + a1bn-1 +... + an-1b1 + 0b0 c2n-2 = an-1bn-1 Um das Produkt der beiden Polynome zu bestimmen, kann man auch die Polynome A und B an 2n-1 Stellen auswerten und dann C konstruieren.

13 1313 Polynommultiplikation (2) Die Konstruktion über das Hornerschema benötigt auch O(n2) Schritte. Daher muss man sich einen anderen Zugang überlegen und die Polynomauswertung anders darstellen.

14 1414 Polynomauswertung an Einheitswurzeln Es ist also günstig, wenn man Es x0=  0; x1 =  1; x2 =  2; …; xn-1 =  n-1,,setzt wobei  n = 1, und  i  i1‚ für 0 < i < n gilt. r 0 < i < n  ist die n-te komplexe Einheitswurzel exp(  i /n).

15 1515 Diskrete Fouriertransformation

16 1616

17 1717 Die schnelle Fourier-Transformation Bekanntlich kann die diskrete Fouriertransformation mit dem Teile und Herrsche–Prinzip mit einem Aufwand von O(N logN) Operationen unter Ausnutzung derselben Routine für die Hin– und Rücktransformation schnell implementiert werden. Ausgehend von dem Fourierpolynom einer 1–periodischen Funktion f(x) p(x) :=  0  k  N-1 bk exp(i2πkx),  = exp(i2  /N) gilt p(k/N) = fk := f (k/N)=, k = 0, 1,...,N-1 genau dann, wenn bk = 1/N  0  l  N-1 fl exp(-2πilk/N), k = 0,...,N-1.

18 1818 Die schnelle Fourier-Transformation 2 Wir schildern nun kurz den eindimensionalen FFT–Algorithmus von Cooley and Tukey nach Gauß und setzen N = 2n: Dazu führen wir die inverse Darstellung τ(k) zur Binärdarstellung einer ganzen Zahl k ein: k = a0 + a12 + a222 +... + an-1 2n-1, ai  {0, 1}  τ(k) = an-1 + an-22 +..., a0 2n-1. Nach der Initialisierung des Tableaus b[τ(k)] := f(k/N) kann der eindimensionale Grundalgorithmus folgendermaßen beschrieben werden:

19 1919 Die schnelle Fourier-Transformation 3 for m := 1 to n do begin E := 1; for j := 0 to 2^(m-1) - 1 do for r := 0 to N-1 step 2^m do begin u := b[r+j]; v := b[r+j+2^(m-1)] * E; b[r+j] := u + v; b[r+j+2^(m-1)] := u - v; E := E * exp(-2 * pi * i / 2^m); end;

20 2020 Die schnelle Fourier-Transformation 4 Anschließend finden wir im Tableau b[k], 0 ≤ k ≤ 2n -1 die mit N multiplizierten Koeffizienten des komplexen Fourierpolynoms, die mittels der Korrespondenzen A0 := 2b0, Ak := bk + bN-k, Bk := i(bk – bN-k) in die Koeffizienten des reellen Fourierpolynoms umgerechnet werden können. Für die Rücktransformation wird die abschließende Division durch N unter- drückt und die letzte Zeile der Iteration in E := E · exp(2πi/2m) modifiziert. Die Berechnung der Transformation τ geschieht mit folgendem kleinen Programmfragment:

21 2121 Die schnelle Fourier-Transformation 5 m1 := N div 2; l := 0; for k := 0 to N-1 do begin read(Re(b[k]), Im(b[k])); If k > l then begin swap(Re(b[k]), Re(b[l])); swap(Im(b[k]), Im(b[l])); end; j := m1; while (j 0) do begin l := l - j; j := j div 2 end; l := l + j; end; Dieser Algorithmus überträgt sich auch auf den zweidimensionalen Fall.


Herunterladen ppt "11 Ausgewählte Algorithmen der Computergraphik Digitale Geometrie Gebiete und Konturen Farbmodelle Renderalgorithmen Schnelle Multiplikation Fast Fourier."

Ähnliche Präsentationen


Google-Anzeigen