Oppure

Loading
14/12/09 17:35

Qualcuno sa come leggere un file MP3(ricavare la frequenza per millisecondo)
e un file immagine in formato PNG o JPEG (ricavare i mappa dei pixel)??
15/12/09 0:37
TheKaneB
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 15/12/09 0:41
aaa
15/12/09 14:23

Grazie Mille.

Comunque non conosco molto bene il C, mi aspettavo una risposta in altro linguaggio e per questo ho chiesto l'algoritmo.
Dicevi che il PNG è solamente compresso con zlib.
Forse ti chiedo troppo ma potresti spiegarmi come funziona
15/12/09 14:32
TheKaneB
mi spiace ma non lo conosco a memoria, però puoi trovare tutto quello che ti serve qui libpng.org/pub/png/…

Ciao ;)
aaa