Translate

Probando el codec xHE-AAC

Introducción

xHE-AAC son las siglas de Extended High Efficiency Advanced Audio Coding. Es la actualización más reciente de la familia Advanced Audio Coding e incorpora la tecnología USAC. Conserva la calidad incluso a bitrates bajísimos. En esta entrada podrá encontrar más información acerca de este codec y sus predecesores: Acerca de Advanced Audio Coding

exhale (ecodis extended high-efficiency and low-complexity encoder) 

Es un software de código abierto que permite codificar audio con xhe-aac en archivos m4a. Utilizando bitrate variable de medio a alto (no está enfocado para bajos bitrates) con o sin SBR.

Página web de exhale: http://www.ecodis.de/exhale/release.htm

exhale se distribuye bajo licencia especificada por el autor en forma de código fuente y puede redistribuirse incluso de forma binaria siempre y cuando se acompañe con la debida documentación. La licencia de exhale la puede encontrar aquí

Si bien, los bitrates que maneja exhale no son los ideales para demostrar la superioridad de xheaac (más enfocado a bitrates bajísimos), los archivos que genera técnicamente están mucho más cerca de la transparencia (es decir, a no tener pérdida perceptible) que los demás códecs, incluyendo los de la propia familia de Advanced Audio Coding.

Comparación de xheaac (exhale) con otros codecs 

Los siguientes son espectrogramas del mismo audio. El primero es del audio original en formato flac (sin pérdidas) que pesa 28.2 MBytes. El segundo corresponde al audio codificado con opus a 43kbps (bitrate variable), el archivo pesó 1.26 MBytes. El tercero corresponde al audio codificado con exhale mediante el perfil a (SBR activado) que arrojó un archivo cuyo bitrate promedio fue de 43kbps (variable) y pesó 1.25 MBytes.

 


 Notar que exhale descarta las altas frecuencias mientras que opus las mantiene sin embargo el espectro del archivo codificado con xheaac se mantiene más fiel al espectro original en el rango de las frecuencias que se conservaron, es decir, tan solo por imagen, se aprecia menos artefactado el espectro de exhale.

 El siguiente es una prueba que evalúa la pérdida de calidad de diferentes audios convertidos con varios codecs al mismo bitrate variable (64 kbps), excepto para mp3 que se utilizó 128 kbps. Con exhale se utilizó el perfil 1 de codificación (SBR deshabilitado).


Notar que para ese bitrate las pérdidas con exhale están calificadas como "ligeramente molestas", lo mismo sucede con opus y los diferentes codificadores de HE-AAC. Se puede decir que para ese bitrate (sin SBR) exhale genera archivos con calidad similar a opus y HE-AAC. Teniendo como referencia la calidad de mp3 a 128 kbps se puede decir también que (en promedio) exhale no alcanza la calidad de dichos archivos. Basado en los nombres de los audios que se reportan, exhale codifica prácticamente sin pérdidas el audio instrumental.

Convertir audio usando exhaleApp con Libre AV Converter

Nota: La versión 2.0.21 de Libre AV Converter se distribuye con exhale y con el archivo para extender el soporte gráfico a dicho ejecutable.

Ve al menú Herramientas - Editor de formatos para crear un perfil de formato

Carga el codec desde el menú Opciones - Cargar codec externo de audio. Selecciona exhale xheaac. 

 

En Formato de contendor ingresa <copy> y en Extensión de archivo ingresa m4a


Ve a la categoría Salida - Audio para configurar el codec

En <InFile> selecciona:

  • file si quieres que se extraiga el audio y después se codifique con exhale (más lento pero más seguro y compatible) 

  • pipe si quieres que se utilice un bloque de memoria ram para transcodificar el audio y mandarlo a exhale (más rápido pero menos seguro e incompatible en ciertos casos)

En preset selecciona un valor de la lista. Si no especificas ninguno Libre AV Converter utiliza 3. 

Se muestra un bitrate aproximado por canal que se logra con cada preset, sin embargo el valor final puede variar mucho del aproximado. Para saber el bitrate aproximado que se tendrá con un archivo estéreo habría que multiplicar por 2.

Notar que el preset 0 está limitado para samplerate menor o igual a 32 kHz.

Entre más alto sea el valor mayor bitrate se maneja. Los valores a,b,c,d,e,f y g utilizan el algoritmo de replicación de la banda espectral (SBR) para mejorar notoriamente el audio y lograr archivos más pequeños.

Utiliza FF>Canales y FF>Sample Rate solo si tienes problemas para convertir, de lo contrario deja estos valores en blanco

 

Guarda el perfil desde el menu Archivo - Guardar. Cierra el Editor de formatos Selecciona el perfil de formato que creaste de la lista 'Formato' en la ventana principal y continúa con los pasos para convertir tu archivo.

Reproducir los archivos m4a generados

Las versiones más recientes de Android tienen soporte nativo para reproducir música codificada con xheaac, de modo que para este sistema operativo cualquier reproductor debería servir para abrir los archivos m4a/xheaac.

Actualmente son pocos los reproductores que incorporan el codec xhe-aac. Uno de ellos es foobar2000 (disponible para Windows, Android y iOS) al cual se le debe agregar el componente 'fdk-aac packet decoder'.

Página web de foobar2000: https://www.foobar2000.org/

Página de descarga de foobar2000: https://www.foobar2000.org/download

Página de descarga del componente: https://www.foobar2000.org/components/view/foo_pd_aac

Nota: Es necesario descargar la versión de 32 bits para hacer funcionar al componente