ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
4 июля
107735
Gamma SPb (16.12.2007 18:36, просмотров: 24012)
Программный MP3 декодер на dsPIC33 http://www.pic24.ru/upload/dspic_mp3.zip
dsPIC33 MAD MP3 декодер ----------------------- Этот проект - MP3 декодер для контроллеров DSC dsPIC33, основанный на хорошо известном fixed-point MP3 декодере MAD: http://www.underbit.com/products/mad/ Вообше говоря, проект основан на порте MAD для TI TMS320C55xx, который можно найти в сети (автор: Grigory Abuladze). Мной были переписаны все асмовые функции, проверено выравнивание (компилятор CCS подразумевает что char = 16 бит), проверены все операции, критичные к порядку байт в слове (TMS320 - big-endian, а dsPIC - little-endian), все массивы выделяются статически на этапе компиляции. dsPIC33 MAD MP3 декодер распространяется на условиях GPL: http://www.underbi …resources/license/gpl/ Требования: Flash: ~9.5 кБ кода + ~11 кБ константы (8% от dsPIC33FJ256GP710) SRAM: ~25 кБ + ~1.5 кБ стека (88% от dsPIC33FJ256GP710) Использование CPU: 33.6 MIPS (32 кГц / 128 kbps / стерео) 6.8 MIPS ( 8 кГц / 20 kbps / стерео) Исходя из требований, понятно, что на сегодняшний день единственный контроллер, на котором можно запустить этот проект - это dsPIC33FJ256GP710. Это связано только с требованиями к ОЗУ, производительности 16-битных DSC от Microchip достаточно, чтобы реализовать декодер потоков с низким значением kbps на любом контроллере dsPIC30. Ограничения: MPEG1 Layer 1 и Layer 2 не поддерживаются Используется 16-битная арифметика функция mad_port_stereo_intensity_lsf() работает не корректно (TODO) Архив проекта содержит исходные коды декодера, проект для MPLAB и тестовые mp3 файлы. Файл /doc/test_result.txt содержит отчеты о декодировании тестовых файлов. Для измерения времени декодирования (decode_time) используется аппаратный таймер, при этом функции ввода и вывода данных исключены из изменений.