prólogo
Los formatos de codificación de audio MPEG-1, MPEG-2 y MPEG-2.5 Layer 3 (MP3) son formatos de audio comunes en el almacenamiento de audio de consumo y en los reproductores de audio digital. Características tales como velocidades de bits múltiples, velocidad de bits variable y selección de frecuencia de muestreo de audio hacen de este algoritmo una opción atractiva para una variedad de aplicaciones multimedia.
Esta nota de aplicación describe el proceso de migración del algoritmo del decodificador Helix MP3 de fuente abierta a los microcontroladores (MCU) PIC32MX de 32 bits de Microchip. El código fuente proporcionado con este documento muestra una aplicación de reproducción de MP3 que utiliza el decodificador Helix MP3. La aplicación del reproductor de MP3 utiliza la pila USB de Microchip para leer archivos MP3 desde una unidad flash USB. Este documento se refiere a las unidades flash USB como unidades de almacenamiento en miniatura. También utiliza la pila de gráficos de Microchip para implementar una interfaz gráfica de usuario (GUI) compatible con pantallas táctiles.
Es posible que los desarrolladores de aplicaciones deban agregar su propio código al código fuente abierto para cumplir con los requisitos de la aplicación de destino. Cuando se compila estáticamente con código fuente abierto, este código propietario puede estar sujeto al acuerdo de licencia de usuario final de código abierto. En muchos casos, esto puede no ser aceptable para el propietario de la aplicación. Por lo tanto, esta nota de aplicación describe una técnica de carga de bibliotecas en tiempo de ejecución (RTLL) que le permite proteger la propiedad intelectual de su aplicación.
Esta nota de aplicación está organizada en el siguiente orden:
1. Descripción de la biblioteca del decodificador Helix MP3.
2. Técnica RTLL utilizada en la aplicación de demostración.
3. Explicación del código de la aplicación de demostración.
4. Pasos necesarios para compilar y ejecutar la aplicación de demostración.
Decodificador de hélice MP3
Los decodificadores Helix MP3 están disponibles tanto en implementaciones de punto flotante como de punto fijo. Se está considerando una implementación de punto fijo para trasladar el algoritmo a los microcontroladores PIC32MX. El algoritmo se ejecuta en cualquier procesador de punto fijo de 32 bits y está codificado completamente en C con la opción de reemplazar ciertas secciones de código con instrucciones de ensamblaje optimizadas. El decodificador Helix MP3 proporciona soporte de capa 3 para MPEG-1, MPEG-2 y MPEG-2.5. Admite formatos de audio de tasa de bits variable, tasa de bits constante, estéreo y mono.
El código fuente del decodificador Helix MP3 es de código abierto y se rige por la licencia contenida en los archivos que acompañan al código fuente. Tenga en cuenta que el decodificador Helix MP3 es de uso gratuito y de código abierto, pero el algoritmo MP3 en sí no es gratuito y su uso tiene un costo. Debe pagar estas tarifas de uso para usar los algoritmos.
Portar el decodificador Helix MP3 a un microcontrolador PIC32MX
Para migrar el decodificador Helix MP3 a la plataforma PIC32MX, deberá descargar el código fuente del decodificador del sitio web Helix MP3 Decoder. Siga las instrucciones de la página web para descargar el código fuente. Como alternativa, puede usar el código fuente del decodificador Helix MP3 disponible con esta nota de aplicación. El código fuente disponible con este documento ya se ha modificado para que el decodificador Helix MP3 funcione con dispositivos PIC32MX.
Cada carpeta de código fuente descargado contiene tres archivos de licencia: RPSL.txt, RCSL.txt y LICENSE.txt. Se anima a los usuarios a leer estos archivos de licencia y se les insta a garantizar el cumplimiento.
El código fuente de Helix MP3 Decoder (descargado del sitio web de Helix MP3 Decoder) se encuentra en la carpeta fixpt. Para portar el código fuente del decodificador a un dispositivo PIC32MX, se deben seguir los siguientes pasos: