DECODIFICADOR DE AUDIO MPEG-3 EN TIEMPO REAL Y CONTROL ATAPI

DECODIFICADOR DE AUDIO MPEG-3 EN TIEMPO REAL Y CONTROL ATAPI Autores : Luis A. Muñoz Dany Valdez Asesor : José Oliden [email protected] a820220@upc.

0 downloads 59 Views 182KB Size

Recommend Stories


SISTEMAS EN TIEMPO REAL
SISTEMAS EN TIEMPO REAL Manuel Agustín Ortiz López Área de Arquitectura y Tecnología de Computadores Departamento de Arquitectura de Computadores, El

Sistema Distribuido en Tiempo Real
Sistema Distribuido en Tiempo Real Julio Javier Castillo [email protected] Marina Elizabeth Cardenas [email protected] LIS-Laboratorio d

RELOJ DE TIEMPO REAL
RELOJ DE TIEMPO REAL Planteamiento: Utilizar el Reloj de Tiempo Real del PLC SX (RTC y/o Real Time Clock) para configurar una hora y fecha para mostra

Usuarios de sistemas externos en tiempo real
Usuarios de sistemas externos en tiempo real Elemento remoto GMRCUEX El elemento remoto GMRCUEX se encarga por un lado de recibir peticiones de uno o

Story Transcript

DECODIFICADOR DE AUDIO MPEG-3 EN TIEMPO REAL Y CONTROL ATAPI Autores : Luis A. Muñoz Dany Valdez Asesor : José Oliden

[email protected] [email protected] [email protected]

Universidad Peruana de Ciencias Aplicadas UPC Dirección: Av. Prolongación Primavera 2390 Monterrico, Surco, Lima 33

RESUMEN Han pasado más de 10 años desde que el algoritmo de compresión MPEG I Capa 3 fue estandarizado. Desde ese momento, una explosión de aplicaciones de software vieron la luz y una miríada de archivos *.mp3 empezaron a inundar la Internet. Sin embargo, las aplicaciones basadas en hardware no han visto la luz hasta hace apenas unos años atrás, en gran parte por la complejidad del algoritmo en sí y por el elevado costo de los DSPs capaces de realizar semejante tarea. Actualmente la oferta y disponibilidad de estos ICs han permitido a grupos de aficionados e ingenieros electrónicos el poder acceder a estudiar e investigar el uso de estos decodificadores y el diseño de soluciones en hardware de intercambio de archivos mp3 eficientes y de bajo costo. Este avance ha ido acompañado de la disponibilidad de nuevos y poderosos microcontroladores que hacen posible la construcción de complejos algoritmos de control para acceder a medio de almacenamiento masivos como los CD-ROMs, que operan bajo un protocolo conocido como ATAPI que establece las operaciones que pueden realizarse sobre una lectora de CDROM de PC. Este documento introduce la tecnología que esta detrás de los decodificadores mp3, para luego exponer los diferentes codificadores que permiten desarrollar una reproductor. Así también, expone el protocolo de control ATAPI y la posibilidad de construir una controladora ATAPI en un microcontrolador para extraer la información digital.

OBJETIVO El objetivo final de este proyecto es la construcción de un decodificador de audio MP3 totalmente independiente de la PC, de tal forma que tenga una interfaz IDE para acceder a los archivos de audio mp3 disponibles en un CD-ROM. Como función adicional, es posible que el decodificador pueda

leer los datos digitales contenidos en un CD de audio comercial, de forma tal el decodificador pueda extraer música tanto en formato digital, así como comprimida de acuerdo con el algoritmo MPEG 1/2 Capa 2/3.

INTRODUCCION La construcción de un decodificador de música digital MP3 está en función de la disponibilidad de los métodos para decodificar y descomprimir un archivo MP3 en tiempo real, lo que permite un flujo continuo de información a la salida. Este proceso es de capital importancia por obvias razones, por lo que es necesario disponer de un hardware lo suficientemente potente como para poder procesar el algoritmo MPEG Capa 3, así como una gran cantidad de memoria para almacenar las tablas y datos requeridos para el tratamiento de la señal comprimida original. A mediados de la década de los 90’s los primeros chips decodificadores de tramas MPEG estuvieron disponibles en los laboratorios. Estos DSPs de propósito específico lograban alcanzar las velocidades requeridas gracias a la arquitectura RISC y un diseño elegante como para poder decodificar una trama MPEG en tiempo real sin pérdida apreciable de calidad. Pronto, estos circuitos empezaron a proliferar en el mercado y aunque aún son pocos los fabricantes que ofrecen soluciones de esta naturaleza, poco a poco están invadiendo el mercado con piezas cada vez más pequeñas, integradas y robustas. Un decodificador de música MP3 stand-alone completo se puede esquematizar como se muestra en el Figura 1. Stand-alone hace referencia a que no se utiliza la potencia de procesamiento de una PC (como en el caso de aplicaciones como WinAmp) aunque puede ser una fuente de información. Se puede observar que el sistema es relativamente simple y que su construcción no sólo es posible sino que interesante pues integra la electrónica del mundo digital y analógico con

resultados que pueden ser medidos directamente por el placer de la música.

psicoacústico (el estudio de la manera como el cerebro procesa la información oída) llamado “enmascaramiento de audio”. En la figura 2 se observa un gráfico en frecuencia de la ocurrencia de un tono de gran amplitud rodeado por una señal de audio de menor intensidad. Por compartir la misma vecindad en frecuencia, el cerebro “enmascara” los componentes en frecuencia de menor intensidad y sólo registra el tono.

Figura 1 – Diagrama de bloques de un reproductor “stand-alone” El Procesador Principal controla que el flujo de los datos mp3 lleguen al decodificador con el formato adecuado y con la velocidad suficiente como para permitir una decodificación en tiempo real. Así también, permite controlar los periféricos externos necesarios para interactuar con el sistema (un teclado y una pantalla LCD). El Decodificador mp3 recibe la trama (en forma paralela o serial) y la descomprime, con lo que se obtiene una trama PCM que ingresa al Conversor Análogo/Digital (DAC) que regenera la señal y la retorna al mundo analógico. Los resultados se pueden escuchar ya sea por unos audífonos o por una salida del tipo Line-Out para ser amplificada por un equipo externo. Los Controles Misceláneos que se muestran en la figura 1 afectan el resultado audible del proceso, de forma que tal que se puede variar el volumen, el nivel de agudos o bajos, así como el balance de los canales de salida (en un sistema estéreo). Este tipo de controles también puede ser efectuado en el bloque Decodificador mp3 pues la trama PCM puede ser afectada por medio del proceso digital de señales, añadiendo efectos en la señal antes de que retorne a su contraparte analógica. Actualmente la mayor parte de los sistemas implementados hacen uso de este tipo de soluciones El algoritmo de compresión MPEG es un algoritmo “con perdidas” por lo que el resultado final es una muestra de audio que al retornar a su forma original, no es la misma (a diferencia de los algoritmos de compresión de datos como el Lempel-Ziff utilizado en el WinZip). Sin embargo, es un algoritmo “si perdidas perceptuales”, por lo que el resultado auditivo de la muestra original y la resultante no pueden distinguirse. Para lograr esto se burla el sentido del la audición en función de un principio

Figura 2 – Enmascaramiento de audio Por lo tanto, el algoritmo de compresión MPEG I Capa 3 utiliza un modelo psicoacústico que, una vez llevada la señal de audio del dominio del tiempo a la frecuencia y disgregada en múltiples bandas estrechas, reconoce las zonas que serán enmascaradas en cada una de estas y asigna de manera dinámica bits en función de el resultado de esta operación (a mayor enmascaramiento en la banda, menos bits serán asignados para la codificación de la banda). La muestra de audio resultante será de 6 a 10 veces más pequeña, sin perder su calidad de audio aparente. El algoritmo de compresión MPEG actualmente es un estándar normado por la ISO (ISO/IEC 11172-3) que establece el proceso de empaquetamiento de datos a una tasa de 1.5Mbps. Aunque no especifica un método de compresión, sugiere un proceso que se observa en la figura 3. Se puede observar que el decodificador es bastante simple. La trama MPEG es disgregada para ser posteriormente reconstruida en frecuencia gracias al encabezado que llega con los datos comprimidos. Una vez reestablecidas las muestras en frecuencia, el siguiente bloque transforma las muestras del dominio de la frecuencia al dominio del tiempo, donde se obtendrá una trama PCM de la misma naturaleza que la trama PCM del audio digital original.

Figura 3 – Compresión / descompresión Por lo tanto, la disponibilidad de DSPs que permita la descompresión de audio MPEG estará en función de la capacidad de ejecutar las operaciones de traslado al dominio del tiempo (un proceso matemático conocido como Transformada Coseno Discreta Modificada Inversa o MDCT Inversa por sus siglas en inglés). Actualmente existen muchos ICs que pueden realizar este tipo de procesamiento. Son DSPs de propósito específico y han sido concebidos para la descompresión de tramas MPEG. Para realizar un reproductor en si es necesario que el procesador central pueda entregar una trama MPEG continua y al mismo tiempo controlar los periféricos. Es de especial cuidado la fuente de datos, que puede ser una PC (como se observa en la figura 1) o un medio de almacenamiento masivo independiente, como un Disco Duro o un CDROM. Este último presenta características ideales para un reproductor de esta naturaleza, por su gran capacidad de almacenamiento y su fácil uso. Para evitar el uso de un controlador del servomecanismo de la lectora y la decodificación de los bits recuperados por el pick-up láser, se puede utilizar una lectora ATAPI (como las encontradas en casi todas las PCs comerciales). El protocolo ATAPI (conocido erróneamente como IDE) se encuentra también normado por el Comité Técnico T3 y el sistema de archivos de un CD-ROM también se encuentra especificado por la ISO (ISO9660), aunque también existen formatos propietarios utilizados por los diferentes sistemas operativos). El protocolo ATAPI permite dejar de lado el control mecánico de la lectora y dedicarse al manejo de la lectura de datos contenidos en el CD-ROM (tanto de audio normal como de datos) . Para un microcontrolador, un dispositivo ATAPI se puede concebir como un conjunto de registros que deben de ser accedidos para leer o escribir. En la figura 4 se observa un dispositivo ATAPI desde el punto de vista del procesador central.

Así, si se quiere acceder a los datos contenidos en el sector 128 se escribe el comando de lectura (READ10) especificando en el registro ATA Command, junto con los argumentos (el sector y la cantidad de bytes que se requieren en el Buffer de Datos) de tal manera que se escriben 12 bytes de manera consecutiva en el registro ATA Command. Una vez realizado este proceso, el Buffer se llenará con los datos esperados, los que serán leídos por medio del registro Data (el único de 16 bits de ancho) utilizando un mecanismo automático FIFO (First In-Fist Out). Así, el procesador central no tiene que preocuparse por los detalles de control de lectura; solamente es necesaria la implementación del protocolo ATAPI Para el manejo de comandos de lectura y escritura, así como de control de dispositivo en si (como abrir la puerta de la lectora).

Figura 4 – Dispositivo ATAPI Estos dos elementos (junto con un conversor digital/analógico para tornar la salida PCM del decodificador mp3 en audio) son necesarios para la implementación de un reproductor mp3, por lo que es necesario escoger los elementos que pueden cumplir con los requisitos del diseño. DESCRIPCIÓN DEL PROYECTO El proyecto se ha dividido en dos partes: el módulo de decodificación mp3 y el módulo de control ATAPI. De esta manera es posible integrar posteriormente ambos módulos en un solo sistema de decodificación. Para la construcción del primer módulo, es necesario utilizar una combinación de DSP y DAC que cumpla con los requisitos ya citados, además de ser de fácil disponibilidad. De todos los ICs disponibles en el mercado (MAS3507 y STA013 cuando inicio el proyecto) y los DAC para este tipo de aplicaciones (DAC3550 y DAC4334) se

escogió la combinación STA013 y DAC4334 por su fácil disponibilidad y amplio soporte, así como su facilidad de manejo físico pues, aunque como los demás ICs, su empaque SOIC (de montaje superficial) tiene dimensiones ligeramente más grandes a nivel de pines por lo que es posible manipularlo manualmente. Para probar el módulo se confeccionó un programa en Lenguaje C para “imprimir” el contenido de un archivo MPEG por el puerto paralelo en el formato del STA013 (I2S) como se observa en la figura 5. El modulo necesita ser inicializado y controlado por medios de comandos sobre un bus I2C (para el control de volumen, por ejemplo). El microcontrolador escogido fue el PIC16F877 por tener experiencia en el desarrollo de aplicaciones y las herramientas necesarias para su implementación.

control de la lectora y se obtuvieron, luego de pruebas de ensayo/error (pues la documentación del protocolo ATAPI es bastante engorrosa y confusa, además de encontrarse en constante actualización), resultados positivos. Es posible controlar la lectora, leer y ejecutar funciones de reproducción de audio de un CD-DA (CD de Audio comerciales) y extracción de datos de un CD-ROM. Una vez los dos módulos listos, el siguiente paso es integrar los módulos para lograr un producto final. La figura 6 muestra el especto del resultado final. La implementación de esta fase, sin embargo, involucra un desarrollo totalmente nuevo pues es necesario contemplar los tiempos que el algoritmo debe de tomar para mantener el flujo de información al decodificador sin saltos, además de manejas el control de los dispositivos de manera eficiente. Además, es necesario mezclar las salidas de audio (dependiendo de si el CD introducido en la lectora ha sido reconocido como CD-DA o CD-ROM).

Figura 5 – Pruebas del módulo de decodificación El módulo de decodificación respondió satisfactoriamente y se hicieron medidas del tiempo de transferencia de información para ver la viabilidad del PIC16F877. El STA013 posee un buffer interno que debe de estar siempre con datos por encima de un umbral. Cuando el buffer se encuentra con pocos datos, coloca a “1” una línea (DEMAND) que instruye al algoritmo para que envíe datos lo más rápido posible hasta que la línea vuelva a “0”. Se observó que el tiempo que transcurre entre dos peticiones de datos (con una tasa de transmisión de aproximadamente 20Kbps) puede alcanzar hasta 2mseg. El PIC16F877 operando a 20Mhz puede realizar 10.000 instrucciones en ese tiempo, por lo que es posible que pueda manejar la transferencia de ráfagas de datos MPEG de 128kbps a 44.1Khz sin que el buffer del STA013 se encuentre vacío. El segundo módulo se encarga del control de la lectora e CD-ROM (Control ATAPI). Este módulo está confirmado por una circuitería compleja que involucra el microcontrolador, 32Kb de RAM, un decoder 74138 para el control de los periféricos, teclado, LCD y el puerto ATAPI. Se implementó en assembler los comandos y reglas ATAPI para el

Figura 6 – Esquema de interconexión de módulos Por eso el producto final debe de estar contenido un una sola tarjeta que controle todos los elementos de la figura 1. Los resultados obtenidos hasta la fecha son bastante alentadores y auguran que este proyecto estará listo en muy corto plazo. REFERENCIAS BIBLIOGRAFICAS [1] K. Brandenburg, H. Popp – An Introduction to MPEG Layer 3 – EBU Technical Review – Junio 2000. [2] José Ma. Angulo, Susana Romero, Ignacio Angulo – Microcontroladores PIC, diseño práctico de aplicaciones, segunda parte (PIC16F87x). MacGrawHill – Primera Edición - 2000 [3] STA013 – MPEG 2.5 LAYER III Audio Decoder – Technical Data – Noviembre 1999

[4] CS4334 – Preliminary Product Information – Agosto 1998 [5] ATA Packet Interface for CD-ROMs (SSF8020i) Revisión 2.6 Proposed - Enero 22, 1996 [6] AT Attachment with Packet Interface Extension (ATA/ATAPI-4) - Agosto 20, 1998 Referencias Internet: [7] http://www.pjrc.com/tech/mp3/sta013.html MP3 Player, Using The STA013 Chip. [8] http://www.mp3projects.com MP3Projects.

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.