Archive for maggio, 2007
Free Lossless Audio Codec
maggio 18, 2007 4:59 pm
Il codec FLAC è uno dei più importanti codec LossLess utilizzati a livello mondiale.
La pagina ufficiale con le caratteristiche di questo codec si trova qui.
E’ totalmente in Inglese, o in Russo. Non c’è purtroppo il tempo e lo spazio per potere descrivere l’intero algoritmo di compressione in questa sede, mentre sarò disponibilissimo a discutere su domande puntuali inerenti il formato inviate tramite commento a questo post, comprese chiarificazioni sulla stessa documentazione ufficiale.
Sostanzialmente FLAC:
1) permette di avere files compressi fino anche al 40, 50% rispetto al PCM originario, mantenendo tutti i dati del file originario, esattamente come avviene con i formati ZIP o RAR, che sono palesemente lossless.
2) opera seguendo questi passaggi:
* Suddivisione in blocchi: L’input viene diviso in più parti contingue, anche variabili in grandezza (e qui c’è un po di controversia, perchè in teoria si dice anche che i blocchi devono essere fissi)
* Compattamento del flusso multicanale: In questo step l’encoder FLAC si occupa di calcolare, nel caso di input stereo e surround, la media dei canali e la loro differenza. Il segnale a qualità migliore, viene passato al processo successivo.
* Predizione: Partendo dal primo blocco, avviene la previsione di quale possa essere il successivo con degli algoritmi matematici che tentano di ricostruire il segnale. In questo caso, verranno codificati solo i parametri, dato che gli algoritmi matematici devono essere presenti sia sull’encoder che sul decoder.
* Codifica residua: La codifica residua permette a FLAC di essere effettivamente un codec lossless. Si codifica senza perdita tutta la parte di segnale che si differenzia dalla ricostruzione matematica di predizione, e viene incorporata nel file finale. Il guadagno si ha sul fatto che il segnale residuo, proprio per la scrematura matematica, sarà minore in bytes rispetto al corrispettivo PCM
Categories: Articoli didattici.. o quasi!
No Comments »

Trentottesimo articolo dedicato (anche) alle web radio.
Cominciamo ad andare sul concreto per quanto riguarda i codec audio.
Avevamo terminato di parlare di come si discretizza al computer un segnale continuo, quali siano i parametri che intervengono e quanto sia pesante per la memoria di massa, gestire questi file sonori. Obiettivo di questo e di altri articoli, sarà quello di capire come ridurre il peso di questi files, utilizzando dei COmpressori / COdificatori e DECompressori / DECodificatori, chiamati appunto codec.
Un codec quindi è un programma che trasforma un file in ingresso (in questo caso, un file audio) in un altro file, con caratteristiche diverse, tipicamente più piccolo in termine di bytes.
Esistono due macrocategorie di codec:
- SENZA perdita di informazione: detti lossless
- CON perdita di informazione: detti lossy
La prima categoria permette di avere files che sono riconducibili ESATTAMENTE al file di partenza, ma hanno una compressione non molto alta e non sono utilizzati ai fini pratici (meno che mai per lo streaming).
La seconda categoria permette invece di avere files non riconducibili esattamente al file di partenza, ma molto più piccoli rispetto al file originario PCM, sebbene con qualche pecca che vedremo.
Tutto farebbe intendere che verranno trattati solo i codec della seconda categoria, in quanto gli unici utilizzabili per lo streaming, e invece no, cominceremo trattando alcuni codec della prima categoria, per poi passare alla seconda, in modo di potere avere una carrellata generica e si spera completa.
O forse per masochismo, o come dice la mia ragazza, malukiffare..
Categories: Web Radio
No Comments »
Viaggio attraverso i Codec Audio
maggio 13, 2007 2:06 pm
Trentasettesimo articolo dedicato alle web radio.
Per le web radio abbiamo parlato di tanti argomenti, Server Windows e *nix, Processori di Segnali Digitali, Normative giuridiche, Tabelle economiche, Campagne pubblicitarie, Troubleshooting, Web Design, Programmazione XML, Reti di Calcolatori, Settaggi Hardware e tanto altro.
E’ forse venuta l’ora di essere più tecnici anche per quanto riguarda il modo in cui quello che sentiamo diventa qualcosa di funzionale nel nostro calcolatore.
Cominciamo capendo come si fa a trasformare un suono in qualcosa di udibile al calcolatore.
Il suono è un segnale continuo, dotato (generalmente) di infinite frequenze, con una sua forma d’onda ben definita.
Per potere trasformare questo segnale in qualcosa di rappresentabile al calcolatore, dobbiamo CAMPIONARE questo segnale.
Per campionamento si intende l’operazione di misurazione del valore dell’ampiezza di un segnale ad ogni intervallo di tempo, in modo da potere discretizzare ed approssimare, similarmente a come avviene per il calcolo di un integrale alla Riemann, dove maggiormente fitti sono i rettangoli, maggiore sarà la precisione di ricostruzione dell’area sotto la curva.
Nel campionamento, si prende il valore del segnale ad ogni intervallo di tempo e con questi punti si ricostruisce il segnale.
Ogni passo di campionamento deve trasportare una informazione, più o meno grande.
Da queste premesse possiamo considerare che un segnale è rappresentato discretamente ed in modo approssimato dal calcolatore con un numero di bytes pari a:
Numero di canali: Quello che differenzia la qualità mono (1) , da quella stereo(2) da quella surround (5 o in generale N).
Frequenza di campionamento in Hertz: Numero di campioni presi al secondo. C’è da fare una piccola parentesi, un segnale deve avere una frequenza di campionamento pari almeno al doppio della frequenza dell’armonica a frequenza massima del segnale, come dimostrato dal teorema di Nyquist-Shannon. Frequenze utilizzate frequentemente sono 44100 Hz o 48000 Hz in quanto sono il doppio della massima frequenza udibile dall’uomo, aumentata di valori sufficienti a coprire il “rumore”, ovvero la differenza dovuta all’approssimazione.
Risoluzione: Quantità di byte che porta ogni singolo passo di campionamento.
Una volta considerate queste tre grandezze, andiamo a vedere quanto pesa un file Wav naturale, stereo, a 44100 hz di frequenza di campionamento, a 16 bit di risoluzione e dalla durata di un minuto, ovvero un brano di un minuto in qualità cd.
2 * 44100 * 16 * 60 = 84672000 bit, ovvero 10 Megabyte! Questo standard è detto PCM.
Decisamente alto, non è vero? Se si utilizzasse questa qualità, sarebbe difficile avere trasferimenti di brani o anche semplicemente di file vocali su internet. Ed è qui che intervengono i codec Audio.
Categories: Web Radio
No Comments »
