5.10. Codificación y almacenamiento de la señal digital

Una señal digital se codifica como una sucesión de valores binarios, según sea la resolución en bits, la cantidad de bytes necesarios para cada muestra varía. Por ejemplo, una señal mono de 16 bits se representa como una sucesión de valores de 3 bytes. Si la señal fuera estéreo o multicanal, los grupos de bytes que representan una muestra de cada canal se entrelazan. Es decir que no se almacena la sucesión de valores del canal 1, luego la del canal 2, etc, sino que se almacena una muestra de cada canal (c) como: c1, c2, …, cn, c1, c2, …, cn, etc. Al conjunto que se genera de una muestra de cada canal se la suele llamar frame, que sería como el corte vertical de las señales superpuestas.

Según la codificación empleada, el conjunto de bytes que almacenan el valor de una muestra puede ser entendido como números enteros, con o sin signo, o como números de punto flotante. En las aplicaciones para audio digital se suele usar la representación “normalizada” en punto flotante en la cual el rango de valores va de -1 a 1, lo cual simplifica las operaciones matemáticas que usualmente se efectúan sobre una señal de audio.

Las señales almacenadas o generadas digitalmente deben poder ser decodificadas de manera adecuada por los programas y el hardware, es por eso que es necesario especificar el formato de codificación empleado en cada etapa.

5.10.1. Archivos de sonido con formato

Para especificar la codificación de una señal digital almacenada en disco se emplean formatos de archivo. Los formatos de archivos se componen generalmente de un encabezado (header en inglés) y luego los valores de amplitud de la señal almacenada. El encabezado especifica el formato de codificación, como pueden ser: el formato binario empleado, la frecuencia de muestreo, la resolución en bits y la cantidad de canales.


La codificación digital que venimos analizando es la que corresponde a los archivos de audio sin compresión, es decir, que almacenan la información como fuera sampleada por el conversor analógico-digital. Como se vio anteriormente, es posible variar la frecuencia de muestreo y la resolución en bits. Al aumentar la calidad de audio, se incrementa directamente el tamaño de los archivos; lo que conlleva un aumento en la capacidad de procesamiento del sistema y en la cantidad de espacio necesario para el almacenamiento.

Al trabajar con archivos de audio se suele tener la necesidad de prever la cantidad de espacio necesario para el almacenamiento y el ancho de banda necesarios para su transmisión en tiempo real. Si tomamos, por ejemplo, un archivo de audio estéreo, muestreado a 44100 Hz y con una resolución de 16 bits podemos calcular la cantidad de bits por segundo que requiere su representación de la siguiente manera: canales * resolución * R / segundo, en concreto sería 2 * 16 bits * 44100 / s = 1411200 bits/s. Si lo pasamos a kbits (dividimos por 1000) serían 1411.2 kbits/s. Si quisiéramos saber cuánto pesa un minuto de audio en este formato la cuenta sería 2 * 16 bits * 44100 * 60 / 8 / 10242 = 10.0936 Mb aproximadamente.

Cuando se habla de transferencia de datos en bits las unidades que se emplean son decimales, un kilo bit son 1000 bits. En cambio, cuando se refiere a espacio de almacenamiento se suele medir en bytes y las unidades de agrupamiento están en binario, por eso dividimos por 8 (1 byte = 8 bits) y luego por 10242 = (210)2.


Los resultados anteriores demuestran que se necesita una cantidad considerable de bits tanto para transmitir como para almacenar información de audio digital. Por este motivo es que se desarrollaron diversos algoritmos de compresión de audio con y sin pérdida. La compresión sin pérdida se suele usar para el audio en alta calidad aunque la relación de peso entre el audio comprimido y el original no es tan eficiente como la que se logra con la compresión a pérdida.

La compresión de audio con pérdida emplea diversos algoritmos basados en la codificación perceptual del sonido (PAC por Perceptual Audio Coding en inglés) y son los formatos más usados para almacenar música en dispositivos móviles y la transmisión de audio a través de internet. La codificación perceptual es una manera muy eficiente de reducir el espacio de almacenamiento y el ancho de banda necesario (Kbits/s) para transmitir sonido a costa de la pérdida de calidad y fidelidad del sonido con respecto al original.

El formato mp3, por ejemplo, define el grado de compresión de los archivos según su tasa de transferencia, la cual va generalmente desde los 8 kbps a los 320 kbps. Si comparamos con los 1411.2 kbps necesarios para transmitir el audio sin comprimir de nuestro ejemplo anterior, la razón de compresión estaría entre 1/176.4 y 1/4.41. Teniendo en cuenta que mientras mayor sea la compresión más se perjudica la calidad del audio, no todas las tasas de transferencia son aceptables para determinados usos. Por ejemplo, para la transmisión de música en formato mp3, se puede considerar aceptable una compresión de hasta 128 kbps lo cual da una razón de 1/11.025. Si la señal se comprime aún más, no solo se pierde información sino que se empiezan a escuchar artefactos característicos del proceso de compresión, los cuales distorsionan (modifican) la información original. El mayor problema de la compresión con pérdida es que no es un proceso reversible, una vez que la señal fue comprimida hay información que fue descartada o simplificada y, por lo tanto, no puede volver a reconstruirse el audio original.

5.10.2. Archivos de sonido sin formato

Un archivo sin formato contiene solamente los valores “crudos” (raw en inglés) de amplitud, sin especificar la frecuencia de muestreo ni la resolución en bits. Para poder leer un archivo raw es necesario saber de antemano cómo fue generado.

En general, los archivos sin formato son empleados internamente por los editores de audio para manipular la información sin necesidad de estar cambiando el formato constantemente. Los archivos de audio se leen una vez y se convierte al sistema de representación empleado por el programa que guarda estos datos en archivos temporales.

Hay casos en los que nos podemos encontrar con información de audio cuyo formato no está especificado, por ejemplo archivos temporales o con el encabezado dañado. En estos casos, la única manera de averiguar el formato de la información es importarlos especificando manualmente la frecuencia de muestreo y la resolución en bits, e ir buscando los valores correctos para luego guardarlos con el formato adecuado.

Generalmente, los archivos sin formato contienen información sin compresión que puede ser exportada intencionalmente para procesar la señal con otros programas que no lean archivos de audio, por ejemplo cuando se trabaja programando a bajo nivel, si se quiere desarrollar un programa simple que implemente un determinado algoritmo.

Si se tratase de archivos dañados con compresión es mucho más difícil reconstruir la información de manera adecuada, por lo que sería necesario recurrir a un software desarrollado específicamente para tal fin.

Moore, F. (1990), “Capítulo II”, en Elements of Computer Music. Prentice-Hall, Nueva Jersey, pp. 27-61.