Da un file audio, in genere, non puoi ottenere la frequenza al millisecondo, perchè ogni suono reale è composto dalla sovrapposizione di infiniti segnali a frequenze diverse, quindi al massimo puoi ottenere uno spettro di frequenze al millisecondo (analisi spettrale). In genere quello che ricavi è il valore del campione in funzione del tempo, o un array di campioni per "frame" (tipicamente 1 frame consiste di pochi millisecondi). Se parli di file MIDI è diverso perchè è molto più semplice, hai un TOT di strumenti, e ogni strumento può emettere una nota con una certa frequenza, un panning, un volume e pochi altri parametri....
cmq se ti serve decodificare un mp3 puoi usare la libreria open source "lame". Per le immagini puoi usare libpng.
cerca su google lame e libpng per avere tutti i dettagli sul loro uso...
Se invece ti interessano gli algoritmi per implementarli da te, è una cosa molto complessa per l'MP3 (ci sono di mezzo la trasformata di fourier, l'applicazione di un modello psicoacustico sul dominio delle frequenze, un'euristica per l'allocazione dei bit sui vari canali dello stream, l'impacchettamento su un contenitore di tipo Mpeg o Wav, varie...)
Discorso analogo per le jpeg, dove ti ritrovi con una trasformazione tra lo spazio dei colori RGB allo spazio YCbCr, tassellazione in caselle 8x8, trasformata di fourier, quantizzazione dei coefficienti tramite matrice a zigzag, impacchettamento in formato jfif, jpeg, jmpeg, o altri...
Un po' più semplice per PNG, che in fondo è una bitmap a 4 canali compressa con zlib.
Ultima modifica effettuata da TheKaneB il 15/12/2009 alle 1:41 |