x
1

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.

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.


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:


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.

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

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.

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:

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.

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):

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:

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 podcasting (radio por internet o programas de audio por internet).

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:

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

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:

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

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.

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.

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

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





Escribe un comentario o lo que quieras sobre Códec de audio (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!