Códec de audio

Un códec de audio es un códec que incluye un conjunto de algoritmos que permiten codificar y decodificar los datos auditivos, lo cual significa reducir la cantidad de bits que ocupa el fichero de audio. Sirve para comprimir señales o ficheros de audio con un flujo de datos (stream) con el objetivo de que ocupan el menor espacio posible, consiguiendo una buena calidad final, y descomprimiéndolos para reproducirlos o manipularlos en un formato más apropiado. Se implementa en software, hardware o una combinación de ambos.

Hardware

En términos de hardware, los códecs de audio son un poco diferentes. Al conectar una fuente analógica en tu computadora, esta se conecta directamente a un códec de audio para transferir el sonido digital a analógico o viceversa en el caso del micrófono. Esto se logra generalmente a través de conectar un dispositivo en tu línea de entrada/salida de conectores del sistema. Estos conectores tienen un aspecto similar al tipo que puedes encontrar en un reproductor de CD portátil o un reproductor de MP3, la toma de los auriculares típicos.

Métodos de codificación

Actualmente existen una gran variedad de códecs de audio. Aunque cada vez son más complejos y añaden características adicionales, se pueden clasificar en cinco grandes grupos dependiendo del método de codificación o reducción de la tasa de bits:


Codificadores perceptuales

Esquema de un codificador perceptual de audio.
Esquema de un decodificador perceptual de audio.

Los codificadores perceptuales aprovechan las limitaciones en la percepción del sistema auditivo humano (umbral de audición, enmascaramiento temporal y/o frecuencial) para codificar el flujo de datos.

Para codificar las muestras en formato PCM (audio digital sin comprimir) se realiza una transformada al dominio frecuencial y se cuantifican y codifican a partir de un conjunto de datos obtenidos en un modelo psicoacústico. La implementación de este modelo psicoacústico es lo que determina la calidad final y es donde se aprovecha el enmascaramiento temporal o frecuencial, siendo el umbral de enmascaramiento el que controla la cuantificación.

En la cuantificación de audio se utilizan distintos tipos de cuantificadores: uniforme, no-uniforme, logarítmico (ley-mu o ley-A), diferencial o vectorial. Generalmente se utiliza cuantificación no-uniforme para música, cuantificación diferencial o logarítmica para señales de voz y cuantificación vectorial para procesado avanzado de la señal de voz.

En la salida de este bloque se puede incorporar un codificador entrópico que comprime sin pérdidas para reducir el tamaño de la trama binaria. Esta trama se empaqueta junto con información adicional que contiene datos imprescindibles para la decodificación como el tamaño de la trama, el número de bits de codificación, el margen dinámico... También se puede añadir corrección de errores.

El decodificador desempaqueta la señal codificada para obtener las muestras y la información auxiliar. Seguidamente, decodifica las muestras y las convierte en el dominio temporal para obtener audio en formato PCM, aunque este no será igual al inicial, puesto que es un proceso de codificación con pérdidas.

Las distintas versiones de MPEG-1, siendo MP3 (MPEG-1 layer3) la más conocida, utilizan este método de codificación.

Codificadores paramétricos

Codificador paramétrico de audio.

Los codificadores paramétricos se basan en que el audio y la voz se pueden representar y sintetizar con tonos aislados, patrones armónicos (representados con sinusoides) y componentes ruidosas. Estos se representan con parámetros como la amplitud, la frecuencia fundamental o los componentes espectrales y requieren pocos bits para representarlos.

Durante el proceso de codificación se extrae información de las muestras de entrada aplicando una transformada de fourier para luego realizar la estimación de parámetros. Seguidamente se codifican basándose con un modelo de la percepción humana, y se multiplexan para formar la trama binaria.

En el proceso de decodificación, a través de un bloque de síntesis y con los parámetros codificados, se reproduce una señal con las características análogas a la señal original.

Un ejemplo de este tipo de codificación es HVXC para voz y HILN para música, ambos dentro del estándar MPEG-4

Vocoders (codificación de voz)

Esquema de un sistema de codificación-decodificación paramétrica.

Los vocoders son codificadores paramétricos específicos para la codificación de la voz. Estos analizan la señal de voz correspondiente a un segmento temporal considerado estacionario para extraer los parámetros del modelo y la excitación. Esta información es la que se codifica. En el proceso de decodificación, el decodificador sintetiza los parámetros a través de un modelo de producción de voz.

Existen dos tipos de vocoders:

Codificadores de forma de onda

Los codificadores de forma de onda se basan en el estudio de la señal, de forma que intentan reproducir la forma del señal de entrada. Generalmente se diseñan para ser independientes de la señal, de manera que se utilizan para codificar una gran variedad de señales. Estos codificadores aprovechan la redundancia de la señal y, a partir de una predicción lineal, permiten codificar la señal auditiva. De esta forma se consiguen tasas de compresión elevadas cuando las señales son redundantes y prácticamente nulas cuando no es así.

La codificación de la señal se puede llevar a cabo tanto en el dominio temporal como frecuencial:

Codificadores en el dominio temporal:
  • Modulación por codificación de pulsos (PCM, Pulse Code Modulation)
  • Modulación por codificación de impulsos diferenciales (DPCM, Differential PCM)
  • Modulación por codificación de impulsos diferenciales adaptativos(ADPCM, Adaptative PCM)
Codificadores en el dominio frecuencial:

Codificadores híbridos (codificación de voz)

Esquema de un codificador híbrido para señales de voz.

Los codificadores híbridos, también conocidos como codificadores de análisis-por-síntesis combinan las técnicas de los codificadores de forma de onda con los vocoders. El objetivo de estos es obtener voz de alta calidad a tasas de bit bajas (inferiores a 8kHz). Su funcionamiento se basa en analizar un conjunto de muestras como si se tratase de una sola para obtener los parámetros de la señal. Al decodificar la trama, se sintetizan los parámetros para conseguir que se parezca al original.

Algunos codificadores híbridos son:

Tipo de códecs de audio

Si obviamos las pérdidas producidas por el error de cuantificación, que en muchos casos son inapreciables, los códecs pueden ser, según el tipo de compresión, con pérdidas (lossy) o sin pérdidas (lossless):

Códecs de audio con pérdidas

En audio se aprovechan las limitaciones del sistema auditivo humano (margen frecuencial, umbral de audición, enmascaramiento temporal y/o enmascaramiento frecuencial) para comprimir los datos de audio. Se usan diferentes métodos para eliminar los datos inaudibles:

  • Transformada en el dominio frecuencial y eliminación de las frecuencia inaudibles (inferiores a 20 Hz y superiores a 20kHz, u enmascaradas por otras frecuencias de mayor potencia).
  • División del señal en subbandas de frecuencia que se aproximan a las bandas críticas y cuantificar cada subbanda en función de un umbral de detección del ruido dentro de la subbanda. De esta forma se analiza el señal de audio y se calcula la cantidad de ruido (pérdidas inapreciables) que se pueden introducir a cada rango de frecuencias, es decir, el umbral de enmascaramiento.
  • Predicción de datos.
  • Caracterización de la voz a partir de una parametrización.

El nivel de compresión se puede controlar y depende de la calidad que se quiera obtener, el tamaño del fichero, el ancho de banda de la red, el tiempo de compresión...

Usualmente se utilizan compresiones máximas para transmisiones, especialmente cuando son servicios en directo como telefonía (telefonía IP o celular) o reproducciones en directo como pódcast (radio por internet o programas de audio por internet).

Códecs de audio sin pérdidas

Estos códecs utilizan una compresión sin pérdidas para minimizar el tamaño del flujo de datos. Para realizar esta codificación se utilizan algoritmos basados en la eliminación de la redundancia de la señal de audio, y por lo tanto en el grado de predictibilidad de la información. Si la señal tiene patrones repetitivos, este es redundante y por lo tanto fácil de predecir.

Usualmente los patrones repetitivos de señal son más evidentes en otro dominio (temporal, frecuencial...), es por esto que la transformación de la señal en función de estos patrones permitirá reducir o eliminar la redundancia.

En audio, igual que en vídeo, imagen o datos, la eliminación de la redundancia se implementa:

Parámetros

Los códecs de audio se caracterizan por los siguientes parámetros:

  • Número de canales: depende del número de señales de audio simultáneos que contiene el flujo de datos. Puede ser mono (1 canal), estéreo (2 canales) o multicanal como 5.1 (seis canales) o 7.1 (ocho canales).
  • Frecuencia de muestreo: determina la calidad percibida, por lo tanto cuanto más alto sea mayor será la fidelidad del sonido obtenido respecto al original. Puesto que el sistema auditivo humano no es capaz de percibir frecuencias superiores a 20kHz y que la frecuencia de muestreo debe cumplir el criterio de Nyquist, para obtener calidad CD nunca se utiliza frecuencias de muestreo superiores a 44.1kHz, puesto que no suponen ninguna ganancia de calidad.
  • Número de bits por muestra. Determina la precisión con la que se reproduce la señal original y el rango dinámico de la misma. Se suelen utilizar 8 (para un rango dinámico de hasta 45 dB), 16 (para un rango dinámico de hasta 90 dB como el formato CD) o 24 bits por muestra (para 109 a 120 dB de rango dinámico). El más común es 16 bits.
  • Tipo de compresión: distingue entre compresión con pérdidas (lossy) y sin pérdidas (lossless).
  • Tasa de bits: determina el número de bits de información necesarios por unidad de tiempo. La tasa de bits no se puede deducir de los parámetros anteriores puesto que la compresión puede ser con pérdidas o sin pérdidas. Además, puede ser constante (CBR), variable (VBR) o en media (ABR). En audio se utiliza tasa de bits variable (VBR), puesto que es más eficiente que CBR cuando hay silencios o segmentos donde la complejidad es baja y se pueden almacenar con menos bits.

Aplicaciones

El objetivo principal de los códecs de audio es reducir la cantidad de datos digitales necesarios para reproducir una señal auditiva. Resulta especialmente útil comprimir los datos para que ocupen el mínimo tamaño posible a la hora de almacenarlo y si se tiene que transmitir por la red se pueda enviar con la mayor rapidez posible. Así, las aplicaciones principales son:

Estandarización

Hay dos organizaciones que dominan la estandarización de los codificadores de audio:

  • ITU-T (Unión Internacional de las Telecomunicaciones) dentro del conjunto de normas H.320 y H.323 donde se definen los estándares para videoconferencia y telefonía IP G.7xx.
  • ISO/IEC (Organización Internacional de la Estandarización y Comisión Electrotécnica Internacional).

Dispositivos

Mientras que los códecs de audio se utilizan principalmente en computadoras personales, hay un número de otros dispositivos que los necesita para mantenerse al día con la tecnología actual. Básicamente, cualquier dispositivo capaz de reproducir audio que también tiene una computadora utiliza los códecs. Ahora todo, desde automóviles hasta teléfonos móviles y los equipos de radiodifusión, utiliza códecs.

Compatibilidad

Los principales problemas con los códecs de audio es el gran número existente. Encontrar los códecs adecuados puede ser difícil a veces, ya que por lo general vienen en paquetes. Como todos ellos son diseñados específicamente para trabajar con un determinado tipo de archivo y el formato, por ejemplo, el códec "A" podría funcionar con el reproductor de MP3, mientras que el codec "B" podría ofrecer ningún sonido debido a problemas de compatibilidad.

Características de los principales códecs de audio

Las características técnicas de los principales códecs de audio son:

Codec AAC FLAC Monkey's Audio MP3 Vorbis (Ogg) WavPack WMA
Creador ISO/IEC MPEG Audio Committe Xiph.Org Foundation, Josh Coalson Matthew T. Ashland ISO/IEC MPEG Audio Committe (Xiph.Org Foundation) Conifer Software Microsoft
Fecha lanzamiento público 1997 20/07/2001 2000 1993 11/05/2000 1998 1999
Última versión estable ISO/IEC 14496-3 1.3.2 4.33 ISO/IEC 11172-3,ISO/IEC 13818-3 1.3.6 5.1.0 11.0
Tipo de compresión Con pérdidas, Híbrido Sin pérdidas Sin pérdidas Con pérdidas Con pérdidas Con pérdidas, Sin pérdidas, Híbrido Con pérdidas, Sin pérdidas
Frecuencia de muestreo 8kHz a 192kHz 1Khz a 1.04857MHz 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48kHz 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48kHz 1Hz a 200kHz 1Hz a 13.777216MHz 8, 11.025, 12, 16, 22.05, 32, 44.1, 48, 96kHz
Tasa de bits 8-529Kbps (estéreo) Variable Variable 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 Kbps Variable Variable (modo sin pérdidas) / superior 196kbps (modo con pérdidas) 4-768kbps / variable (sin pérdidas)
Bits por muestra Cualquiera 4, 8, 16, 24, 32 ? Cualquiera Cualquiera Variable (modo sin pérdidas) / superior a 2.2 (modo con pérdidas) 16, 24 (modo sin pérdidas) / Cualquiera (modo con pérdidas)
CBR Si No No Si Si Si Si
VBR Si Si Si Si Si Si Si
Multicanal hasta 28 canales hasta 8 canales No No hasta 255 canales hasta 16 canales hasta 8 canales (WMA Professional) / hasta 6 canales (WMA sin pérdidas)

Ejemplos de códecs de audio

Sin pérdidas Con pérdidas Códecs de voz
ALAC (Apple Lossless)

DST (Direct Stream Transfer)

FLAC (Free Lossless Audio Codec)

LA (Lossless Audio)

LPAC (Lossless Predictive Audio Codec)

LTAC (Lossless Transform Audio Codec)

MLP (Meridian Lossless Packing)

Monkey's Audio (APE)

MPEG-4 ALS

MPEG-4 SLS

OptimFROG

QDesign

RealAudio Lossless

RKAU

Shorten (SHN)

TTA (True Audio)

WavPack

WMA lossless (Windows Media Audio Lossless)

AAC (Advanced Audio Coding)

HE-AAC (High Efficiency Advance Audio Coding)

AC3 (Dolby Digital A/52)

ADPCM

ADX (videojuegos)

ATRAC (Adaptive TRansform Acoustic Coding)

DRA

DTS (Digital Theather Systems)

MP1 (MPEG audio layer-1)

MP2 (MPEG audio layer-2)

MP3 (MPEG audio layer-3)

mp3PRO

Musepack

Ogg Vorbis

Opus

Perceptual Audio Coding

RTA (Real Time Audio Codec)

TwinVQ

Siren

WMA (Windows Media Audio)

AMBE

AMR

CELP

CELT

EVRC

G.711

G.722

G.723

G.726

G.728

G.729

GSM

HILN (MPEG-4 paramétrico)

iLBC

IMBE

Perceptual Audio Coding (radio digital y satélite)

Speex

SMV

QCELP

VSELP


Véase también

Enlaces externos