02/09/10 15:16
antedesk
Salve a tutti!
ho un problema un pò più serio questa volta, dovrei effettuare il calcolo della trasformata discreta del coseno(dct) su una matrice di interi, che rappresenta l'immagine.
il codice per il calcolo della dct è una semplice formula matematica che ho trovato in rete e riconvertita in codice java. Il problema è che così su immagini molto grandi di mette un eternità, tempo che non sono disposto ad aspettare
Studiando un pò di materiale sulla compressione jpeg dove viene utilizzata la dct e dove:
[QUOTE]
"Ogni matrice saràsuccessivamente divisa in blocchi di dimensione 8x8, ovvero ogni blocco conterrà 64 pixel dell’immagine originale. Quindi se M o N non risultano multipli di 8, sono aggiunte delle copie dell’ultima riga o dell’ultima colonna alla matrice dell’immagine originale, sino a che la dimensione della nuova matrice non diventi un multiplo di 8.
Ad ogni blocco è applicata la trasformata DCT bidimensionale, che restituisce ancora un bloccodi dimensioni 8x8."
[/QUOTE]
il problema è che nono so proprio dove mettere le mani per suddividere la matrice in blocchetti 8x8 e di aggiungere una riga qualora non dovesse essere un multiplo di 8
potete aiutarmi? se serve posso postare il codice della funzione dct.
Grazie a tutti, spero di avere risposta
ho un problema un pò più serio questa volta, dovrei effettuare il calcolo della trasformata discreta del coseno(dct) su una matrice di interi, che rappresenta l'immagine.
il codice per il calcolo della dct è una semplice formula matematica che ho trovato in rete e riconvertita in codice java. Il problema è che così su immagini molto grandi di mette un eternità, tempo che non sono disposto ad aspettare
Studiando un pò di materiale sulla compressione jpeg dove viene utilizzata la dct e dove:
[QUOTE]
"Ogni matrice saràsuccessivamente divisa in blocchi di dimensione 8x8, ovvero ogni blocco conterrà 64 pixel dell’immagine originale. Quindi se M o N non risultano multipli di 8, sono aggiunte delle copie dell’ultima riga o dell’ultima colonna alla matrice dell’immagine originale, sino a che la dimensione della nuova matrice non diventi un multiplo di 8.
Ad ogni blocco è applicata la trasformata DCT bidimensionale, che restituisce ancora un bloccodi dimensioni 8x8."
[/QUOTE]
il problema è che nono so proprio dove mettere le mani per suddividere la matrice in blocchetti 8x8 e di aggiungere una riga qualora non dovesse essere un multiplo di 8
potete aiutarmi? se serve posso postare il codice della funzione dct.
Grazie a tutti, spero di avere risposta
aaa