Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spirit MP3/WAV audio engine для STM32F
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
KnightIgor
В сообщении на сайте ST.COM здесь упоминается Spirit MP3/WAV audio engine библиотека для STM32F10х, однако дальнейшая ссылка там не работает. Может у кого завалялась эта библиотека? И вообще, что порекомендуете для декодирования MP3|WAV на Cortex-M3 (предполагаю далее взять внешний I2S DAC от TI или еще кого...)?

blackfin
Цитата(KnightIgor @ Mar 13 2011, 12:59) *
Сообщение очень содержательное и профессиональное. Спасибо за помощь.

Спросите в Spirit Dsp. У них наверняка где-нибудь "завалялась эта библиотека"..
KnightIgor
Цитата(blackfin @ Mar 13 2011, 11:12) *
Спросите в Spirit Dsp. У них наверняка где-нибудь "завалялась эта библиотека"..

Вряд ли они раздают ее направо и налево задаром. ST лицензировала библиотеку и предлагает ее бесплатно (в бинарном виде), если она будет использоваться в их микроконтроллерах (встроена проверка). Лицензия на MP3 включена в цену контроллеров, никакого дополнительного лицензирования затем не требуется. Вот эту библиотеку я и хочу. Поиски дают ссылки на Spirit, дистрибуторов и различные публикации, но никак не на архив. Та птица-говорун, которая упрекала меня в лени поискать, лучше бы проявила свой ум, находчивость и сообразительность и дала ссылку.
Dron_Gus
Возьмите libmad или realnetwork'овский декодер. Они есть в исходниках. На этом форуме выкладывали как минимум два готовых проекта.
akimych
Интересно, была ли там вообще ссылка на скачивание.
Потому как у них на форуме такой вопрос задавали, ответ: "You have to sign some License Agreement and then we can ship you CDs for evaluation based on your demand with full documentation and examples."
goodwin
Цитата(Dron_Gus @ Mar 13 2011, 15:02) *
Возьмите libmad или realnetwork'овский декодер. Они есть в исходниках. На этом форуме выкладывали как минимум два готовых проекта.


Не тянет их STM на битрейте 320 стерео.
LPC17 справляется с запасом даже на 72МГц (realnetwork+usb host MSD).

2 KnightIgor: Вам предложили поискать в этой теме, ибо месяца два назад совершенно аналогичную тему создал...
Dron_Gus
Цитата(goodwin @ Mar 13 2011, 23:24) *
Не тянет их STM на битрейте 320 стерео.
LPC17 справляется с запасом даже на 72МГц (realnetwork+usb host MSD).

Это странно. Ибо у меня 25% на LPC1768@100MHz занимало декодирование 320. Неужели STM32 такой тормоз?
goodwin
Цитата(Dron_Gus @ Mar 13 2011, 23:46) *
Это странно. Ибо у меня 25% на LPC1768@100MHz занимало декодирование 320. Неужели STM32 такой тормоз?


Тестировал один и тот же код (только декодер). STM32 -72МГц "на грани".
Насчет LPC17 тоже есть предположение (не пробовал), что декодировать любые битрейты с usb флэш можно и на 48 МГц, ибо на 72 запас большой.
sonycman
Цитата(goodwin @ Mar 14 2011, 00:38) *
Тестировал один и тот же код (только декодер). STM32 -72МГц "на грани".
Насчет LPC17 тоже есть предположение (не пробовал), что декодировать любые битрейты с usb флэш можно и на 48 МГц, ибо на 72 запас большой.

Наверняка у Вас какой-то косяк был в декодере под STM.
Не может быть такой разницы с LPC.
Вон, даже старые ARMы типа SAM7 справляются с 320 килобит.
goodwin
Цитата(sonycman @ Mar 14 2011, 12:59) *
Наверняка у Вас какой-то косяк был в декодере под STM.
Не может быть такой разницы с LPC.
Вон, даже старые ARMы типа SAM7 справляются с 320 килобит.


Может - может wink.gif Код один и тот же. Выравнивание как положено.
У NXP ускоритель флэш рулит...
Тоже удручил такой результат. Попробовал слинковать все в RAM - еще тормознее...
Кстати, не только я об этом. Демки от самого STM ограничены одним каналом.
Какой-то импортный перец выложил проект плеера (realnetwork, SD) на ките от STM. Про битрейт 320 стерео пишет, что производительности не хватает.

akimych
Вот тоже не понимаю такого различия в производительности, ядро-то одно и тоже (почти). А если у стм флеш сильно медленнее получается, так это должно выявляться и на каких-то других тестах. Я не то, чтобы это оспариваю, все равно проверять не на чем. Хочется разобраться в причинах, думаю не только мне.
bzzz77
я мерял helix, на файле в 320kbp с временем проигрывания 354сек. железка - lpc2378 на 48MHz.
замерял декодирование в нескольких режимах:
1) код в rom, закачиваю файл в sdram, временные буферы в sram - декодирование завершилось за 251 сек
2) то же самое, но файл в процессе подкачиваю с sdram с sdcard - 272 сек
3) --//-- файл с usb flash - 289 сек

очевидно (2) и (3) можно вернуть почти к (1) закачивая данные асинхронно.

критически важным оказалось положить временные 23k временных буферов (ну или хотя бы пару структур на 15k) в sram.
Alex_1811
Цитата(bzzz77 @ Mar 15 2011, 01:26) *
я мерял helix, на файле в 320kbp с временем проигрывания 354сек. железка - lpc2378 на 48MHz.
.


Поделитесь исходником.
bzzz77
Цитата(Alex_1811 @ Mar 29 2011, 20:52) *
Поделитесь исходником.

http://embdev.net/articles/ARM_MP3/AAC_Player
mrcrook
mp3 player на stm32f4-discovery (helix+fatfs)
Битрейт 320 тянет без проблем.
goodwin
Цитата(mrcrook @ Mar 24 2012, 09:20) *
mp3 player на stm32f4-discovery (helix+fatfs)
Битрейт 320 тянет без проблем.


И че? LPC17 с usb диска на тактовой 72 Мгц в большим запасом делает то же самое. Еще бы 32F4 с этим не справился...
Или проект хотим выложить?
mrcrook
Цитата(goodwin @ Mar 25 2012, 20:54) *
И че? LPC17 с usb диска на тактовой 72 Мгц в большим запасом делает то же самое. Еще бы 32F4 с этим не справился...
Или проект хотим выложить?

да ради бога http://shuji009.blog.eonet.jp/default/2012...4mp32-30df.html Как говорится: "Мопед не мой, я только объявление разместил".
dimone
Цитата(goodwin @ Mar 14 2011, 17:15) *
Может - может wink.gif Код один и тот же. Выравнивание как положено.
У NXP ускоритель флэш рулит...
Тоже удручил такой результат. Попробовал слинковать все в RAM - еще тормознее...
Кстати, не только я об этом. Демки от самого STM ограничены одним каналом.
Какой-то импортный перец выложил проект плеера (realnetwork, SD) на ките от STM. Про битрейт 320 стерео пишет, что производительности не хватает.

Как понимаю дегатся с рилом в сторону STM32 M3 даже пробовать не стоит?
Allregia
А есть ссылки на аналогичные штуки, только не мр4 а flac ?
dimone
Цитата(Allregia @ Dec 17 2012, 17:35) *
А есть ссылки на аналогичные штуки, только не мр4 а flac ?

-Выигрыш по сравнению с RAW минимальный , а ресурсов уйдет на порядок более. Если это не самоцель ,то при нынишни ценах на "флеш" еще стоит подумать...
Allregia
Цитата(dimone @ Dec 18 2012, 13:38) *
-Выигрыш по сравнению с RAW минимальный , а ресурсов уйдет на порядок более.


Выигрыш 50-80%, не так уж и мало!

Цитата
Если это не самоцель ,то при нынишни ценах на "флеш" еще стоит подумать...


Дело не только в цене флеша а в скорости передачи - она ведь тоже становиться меньше на ту-же величну, на которую сжимаются данные.
Например FullSpeed USB хватает для аудио стандартного 96/24 и нестандартного 192/16, но уже не хватает для стандартного 192/24, причем не хватает совсем чуть-чуть.
goodwin
Имхо, задействовать FS USB гораздо разумнее, чем реализовать программный декодер для такого потока в, прямо скажем, не шибко жирной встроенной RAM... Да и вообще, для 192/24, 5.1 нужно уже другое железо.
Allregia
Цитата(goodwin @ Dec 21 2012, 08:56) *
Имхо, задействовать FS USB гораздо разумнее

Я писал выше - FS не успевает, Вы видимо имели ввиду HS, но оно, в отличие от софта, денег стоит не только в разработке, но и в каждом экземпляре - внешний PHY.

Цитата
, чем реализовать программный декодер для такого потока в, прямо скажем, не шибко жирной встроенной RAM...


Да тут вагон памяти! Тем более, что flac требует не больше чем мр3, а мр3 реализовывался на куда более медленных процессорах с меньшей памятью.

Цитата
Да и вообще, для 192/24, 5.1 нужно уже другое железо.


И на этом нормально!
goodwin
Да, очепятался. Конечно HS...
dimone
Цитата(goodwin @ Dec 21 2012, 09:56) *
Имхо, задействовать FS USB гораздо разумнее, чем реализовать программный декодер для такого потока в, прямо скажем, не шибко жирной встроенной RAM... Да и вообще, для 192/24, 5.1 нужно уже другое железо.

стати насчет памяти, в соседней ветке поднималось, но хотел спросить, вы это учитывали?
The CPU can access the system SRAM through the System Bus or through the I-Code/D-Code buses when boot from SRAM is sele cted or when physical remap is selected
( Section 7.2.1: SYSCFG memory remap register (SYSCFG_MEMRMP) in the SYSCFG
controller). To get the max performance on SRAM execution, physical remap should be
selected (boot or software selection).
flopix
Цитата(mrcrook @ Mar 25 2012, 19:28) *
да ради бога http://shuji009.blog.eonet.jp/default/2012...4mp32-30df.html Как говорится: "Мопед не мой, я только объявление разместил".


Кто то пробовал разбираться с этим проектом? Залил идущий в архиве hex файл - работает, mp3 играет. Компилирую проект, прошиваю - не играет. Начинает читать флещку, находит mp3 трек, пытается декодировать mp3 и почти сразу вылетает на Hard Fault exception.
Также не могу понять как в этом проекте осуществляется загрузка готового аудиопотока на внешний цап. Функция Audio_MAL_Play вызывается только один раз из функции AUDIO_Init_audio_mode при инициализации декодера и ЦАПа. В цикле происходит чтение с флешки, декодирование и загрузка в промежуточный буффер и все. Странно, неужели японец выложил на своем сайте нерабочий проект?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.