Códec2
Codec2 es un códec de audio con pérdida ( patente ) gratuito que se especializa en la transmisión inteligible del habla humana a velocidades de bits extremadamente bajas. El códec fue creado para la transmisión de señales de voz a través de canales de radio de banda estrecha en radioaficionados . La implementación de referencia está sujeta a los términos de la versión 2.1 de la GNU Lesser General Public License (LGPL).
La especificación abierta del método permite la comunicación digital a través de frecuencias de radioaficionados sin necesariamente transmitir contenido digital no especificado mediante el uso de códecs patentados previamente disponibles , como AMBE o MELP , que los radioaficionados están prohibidos.
Codec2 ya se ha integrado oficialmente en FreeSWITCH y hay un parche disponible para su integración en Asterisk .
caracteristicas
Codec2 ofrece modos de velocidad de bits fija de 3200, 2400, 1600, 1400, 1300, 1200, 700 o 450 bps. Procesa y entrega datos PCM con una frecuencia de muestreo de 8 kHz. Los paquetes de datos individuales (parámetros) cubren cada uno de 10 a 20 (2,4 kBit / s) o 40 (1,4 kBit / s) milisegundos. El autor sitúa la latencia algorítmica en alrededor de 100 milisegundos. La calidad de la voz se mueve ligeramente por debajo de lo normal 2G - teléfonos móviles y se puede decir para medir comparativamente menor tasa de bits mucho con el de AMBE.
La implementación de referencia está programada en C y hasta ahora no se ha gestionado sin aritmética de coma flotante , aunque el procedimiento en sí no lo requiere. El paquete de software de referencia también contiene un módem de software FDMDV y una interfaz gráfica de usuario basada en FLTK . El software está desarrollado en Linux y, además de una versión de Linux, también se ofrece un puerto de Windows creado con Cygwin .
El desarrollador principal, Rowe, básicamente evitó los algoritmos que se ven afectados por patentes válidas al basar su proceso en técnicas que se conocen desde hace décadas. Sin embargo, no se había realizado una búsqueda exhaustiva de patentes antes de que se presentara en linux.conf.au en enero de 2012.
tecnología
El método funciona con medios de codificación de audio paramétrica utilizando un modelo de la voz humana. Entre otras cosas, utiliza un modelo sinusoidal como método básico, que se remonta a los desarrollos de Robert J. McAulay y Thomas F. Quatieri (MIT Lincoln labs) a mediados de la década de 1980 y está estrechamente relacionado con el de los códecs de excitación multibanda . A partir de la señal de entrada, se determinan y cuantifican los parámetros para describir los pares de espectro de línea (un tipo de coeficiente LPC), el tono (básico), la energía y la sonorización de la señal. A partir de esto se sintetiza una señal PCM en el lado del receptor. El modelo sinusoidal se basa en regularidades (periodicidad) en el patrón de las frecuencias armónicas y capas sinusoides armoniosamente sobre una frecuencia fundamental determinada. Las amplitudes de las frecuencias superiores se modelan con Codificación Predictiva Lineal (LPC).
historia
El destacado defensor del software libre y radioaficionado Bruce Perens vio la necesidad de un códec de libre expresión por menos de 5 kBit / s. En 2008 se acercó a Jean-Marc Valin ( Speex , Opus ), quien le presentó al desarrollador principal David Grant Rowe, quien ha trabajado con Valin en Speex en varias ocasiones. Rowe también es un radioaficionado ( indicativo VK5DGR) y tiene experiencia en la creación y uso de códecs y otros algoritmos de procesamiento de señales para señales de voz. Entre otras cosas, obtuvo un doctorado en codificación de voz en la década de 1990 y participó en la creación de uno de los primeros sistemas de telefonía por satélite ( Mobilesat ).
Estaba convencido de la tarea y el 21 de agosto de 2009 anunció su decisión de trabajar en un códec correspondiente. Se basó en la investigación y los hallazgos de su tesis doctoral. En agosto de 2010 lanzó la versión 0.1 alpha.
La versión 0.2 se lanzó a finales de 2011, introduciendo un modo con 1400 bits / sy aportando mejoras significativas en la cuantificación.
En enero de 2012 en linux.conf.au, Jean-Marc Valin ayudó a mejorar la cuantificación de los pares de espectro de líneas, con los que Rowe está menos familiarizado. Después de varios cambios en los modos de velocidad de bits disponibles en el invierno y la primavera de 2011/2012, los modos con 2.400, 1.400 y 1.200 bit / s están disponibles desde mayo.
En julio de 2018, se publicó un modo con 450 bit / s, que se desarrolló como parte de una tesis de maestría en la Universidad de Erlangen-Nuremberg. Al entrenar hábilmente la cuantificación vectorial, la velocidad de datos podría reducirse aún más según el principio del modo 700C.