M
Maggus
Gast
Die nebenstehende
Methode implementiert
die DCT für einen
quadratischen
Ausschnitt eines Bildes
mit n*n Pixeln. Welche
Ordnung hat dieser
Algorithmus bezogen
auf n (Anzahl Pixel pro
Zeile bzw. Spalte)?
[/code]
Es sind ja eigentlich vier Schleifen inenander, also dpch eigentlich N^4 oder? Unser Prof meint aber N^2, hat es aber leider nicht mehr erklärt...
Kann mir jemand helfen wie er auf die Lösung kam? Danke!
Methode implementiert
die DCT für einen
quadratischen
Ausschnitt eines Bildes
mit n*n Pixeln. Welche
Ordnung hat dieser
Algorithmus bezogen
auf n (Anzahl Pixel pro
Zeile bzw. Spalte)?
Code:
public static void dctTransformation(double[][] a,double[][] b){
int n=a.length;
for(int u=0; u<n; u++)
for(int v=0; v<n; v++)
b[u][v] = dctWert(a,u,v);
}
private static double dctWert(double[][] a, int u, int v){
int n=a.length;
double f=0.0;
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
f+=a[i][j]*Math.cos(0.5*Math.PI*(double)(u*(2*i+1))/(double)n)
*Math.cos(0.5*Math.PI*(double)(v*(2*j+1))/(double)n);
return f;
}
Es sind ja eigentlich vier Schleifen inenander, also dpch eigentlich N^4 oder? Unser Prof meint aber N^2, hat es aber leider nicht mehr erklärt...
Kann mir jemand helfen wie er auf die Lösung kam? Danke!