Codec2
Codec2 è un codec audio lossy gratuito ( brevettato ) specializzato nella trasmissione intelligibile del parlato umano a velocità di trasmissione estremamente basse. Il codec è stato creato per la trasmissione di segnali vocali su canali radio a banda stretta nella radio amatoriale . L'implementazione di riferimento è soggetta ai termini della versione 2.1 della GNU Lesser General Public License (LGPL).
La specifica aperta del metodo consente la comunicazione digitale su frequenze radioamatoriali senza necessariamente trasmettere contenuti digitali non specificati attraverso l'uso di codec proprietari precedentemente disponibili come AMBE o MELP , che sono vietati ai radioamatori.
Codec2 è già stato ufficialmente integrato in FreeSWITCH ed è disponibile una patch per l'integrazione in Asterisk .
Caratteristiche
Codec2 offre modalità di velocità in bit fisse di 3.200, 2.400, 1.600, 1.400, 1.300, 1.200, 700 o 450 bps. Elabora e fornisce dati PCM con una frequenza di campionamento di 8 kHz. I singoli pacchetti di dati (parametri) coprono ciascuno da 10 a 20 (2,4 kBit / s) o 40 (1,4 kBit / s) millisecondi. L'autore pone la latenza algoritmica a circa 100 millisecondi. La qualità della voce si sta muovendo leggermente al di sotto del normale 2G - telefoni cellulari e si può dire che misuri a un bit rate relativamente molto più basso di quello di AMBE.
L' implementazione di riferimento è programmata in C e finora non è stata gestita senza aritmetica in virgola mobile , sebbene il metodo stesso non lo richieda. Il pacchetto software di riferimento contiene anche un modem software FDMDV e un'interfaccia utente grafica basata su FLTK . Il software è sviluppato su Linux e, oltre a una versione Linux, viene offerta anche una porta Windows creata utilizzando Cygwin .
Lo sviluppatore principale Rowe ha sostanzialmente evitato gli algoritmi che sono influenzati da brevetti validi basando il suo processo su tecniche note da decenni. Tuttavia, nessuna ricerca completa sui brevetti era stata effettuata prima che fosse presentato su linux.conf.au nel gennaio 2012.
tecnologia
Il metodo funziona con mezzi di codifica audio parametrica utilizzando un modello della voce umana. Tra le altre cose, utilizza un modello sinusoidale come metodo di base, che risale agli sviluppi di Robert J. McAulay e Thomas F. Quatieri (MIT Lincoln labs) a metà degli anni '80 ed è strettamente correlato a quello dei codec di eccitazione multibanda. Dal segnale di ingresso, vengono determinati e quantizzati i parametri per descrivere le coppie di spettro di linea (una sorta di coefficiente LPC), il tono (di base), l'energia e la voce del segnale. Un segnale PCM viene sintetizzato da questo sul lato del ricevitore. Il modello sinusoidale si basa sulle regolarità (periodicità) nel pattern delle frequenze armoniche e sovrappone armoniosamente le sinusoidi su una determinata frequenza fondamentale. Le ampiezze delle frequenze superiori sono modellate con Linear Predictive Coding (LPC).
storia
Il famoso sostenitore del Software Libero e radioamatore Bruce Perens ha visto la necessità di un codec per la libertà di parola per meno di 5 kBit / s. Nel 2008 si è avvicinato a Jean-Marc Valin ( Speex , Opus ), che lo ha presentato al principale sviluppatore David Grant Rowe, che ha lavorato con Valin su Speex in varie occasioni. Rowe è anche lui stesso un radioamatore ( nominativo VK5DGR) e ha esperienza nella creazione e nell'uso di codec e altri algoritmi di elaborazione del segnale per i segnali vocali. Tra le altre cose, ha conseguito un dottorato in codifica vocale negli anni '90 ed è stato coinvolto nella creazione di uno dei primi sistemi di telefonia satellitare ( Mobilesat ).
Era convinto del compito e il 21 agosto 2009 ha annunciato la sua decisione di lavorare su un codec corrispondente. Ha costruito sulla ricerca e sui risultati della sua tesi di dottorato. Nell'agosto 2010 ha rilasciato la versione 0.1 alpha.
La versione 0.2 è stata rilasciata verso la fine del 2011, introducendo una modalità con 1.400 bit / se apportando miglioramenti significativi nella quantizzazione.
Nel gennaio 2012 su linux.conf.au, Jean-Marc Valin ha contribuito a migliorare la quantizzazione delle coppie di spettro di linea, con cui Rowe ha meno familiarità. Dopo diverse modifiche alle modalità di velocità in bit disponibili nell'inverno e nella primavera 2011/2012, le modalità con 2.400, 1.400 e 1.200 bit / s sono disponibili da maggio.
Nel luglio 2018 è stata pubblicata una modalità con 450 bit / s, sviluppata come parte di una tesi di master presso l'Università di Erlangen-Norimberga. Addestrando abilmente la quantizzazione vettoriale, la velocità dei dati potrebbe essere ulteriormente ridotta in base al principio della modalità 700C.