Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MP3 кодер / декодер на Cyclone (сигнал 4 кГц моно)
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Konstantin Ilichev
Добрый день!
Есть проект на Cyclone, в котором входные данные приходят со скоростью 64 кбит/с.
Данные идут в формате PCM A-law, полоса 4 кГц.
Нужно сделать кодер этих данных. И соответственно декодер MP3 в поток 64 кбит/с.
HELP!!!
Подскажите, кто реализовывал такой кодек, с чего начать и где раздобыть корку?

P.S. В кристалле будет независимых 8 кодеров и 8 декодеров.
WEST128
Самый простой вариант - использовать компилируемое процессорное ядро, хоть тот же NIOS, а уж исходников для MP3 на С достаточно.
klop
Цитата(Konstantin Ilichev @ Dec 7 2006, 17:22) *
Добрый день!
Есть проект на Cyclone, в котором входные данные приходят со скоростью 64 кбит/с.
Данные идут в формате PCM A-law, полоса 4 кГц.
Нужно сделать кодер этих данных. И соответственно декодер MP3 в поток 64 кбит/с.
HELP!!!
Подскажите, кто реализовывал такой кодек, с чего начать и где раздобыть корку?

P.S. В кристалле будет независимых 8 кодеров и 8 декодеров.


Вот некоторые мысли:
1. MP3 енкодер тяжелее декодера насколько я понимаю (правда и поток у Вас не самый быстрый)
2. Я не уверен что 8 ядер на кристале - очень изящное решение
3. В данной ситуации готовый мощный проц + внешняя обвязка будет гораздо дешевле

Цитата(WEST128 @ Dec 7 2006, 17:35) *
Самый простой вариант - использовать компилируемое процессорное ядро, хоть тот же NIOS, а уж исходников для MP3 на С достаточно.


Никто не сказал что эти исходники очень оптимально лягут на НИОС. Такое мы уже проходили.
WEST128
Цитата(klop @ Dec 8 2006, 00:09) *
Никто не сказал что эти исходники очень оптимально лягут на НИОС. Такое мы уже проходили.

Да кроме NIOS мало ядер ? Есть ARM ядро, да и еще много других.
klop
Цитата(WEST128 @ Dec 8 2006, 06:02) *
Цитата(klop @ Dec 8 2006, 00:09) *

Никто не сказал что эти исходники очень оптимально лягут на НИОС. Такое мы уже проходили.

Да кроме NIOS мало ядер ? Есть ARM ядро, да и еще много других.


Насчет ARM:
1. MP3 для ARM7 должнен быть хорошо оптимизирован
2. Soft ARM7 core вряд ли запашет в FPGA быстрее 20-30 MHz
3. Для нескольких потоков ARM7 явно слабовато будет
4. ARM9 явно лучше но где его взять
Doka
Цитата(Konstantin Ilichev @ Dec 7 2006, 17:22) *
Данные идут в формате PCM A-law, полоса 4 кГц.
Нужно сделать кодер этих данных. И соответственно декодер MP3 в поток 64 кбит/с.
P.S. В кристалле будет независимых 8 кодеров и 8 декодеров.


а нужно ли там МП3 ?!?!?!?!?
всеже он максимально эффективен при сжатии музыки. У Вас же судя по всему речь с полосой 4кГц. При сжатии речи боле эффективны иные алгоритмы компрессии. Вы не указали до какого битрейта Вам надо жать а то может статься, что реально обойтись каким-нить АДИКМ (e.g. G.726), которое лучше "ложится" в ПЛИС, чем вокодеры.

Если Вы занимаетесь темой в рамках курсового проекта, то посмотрите статью "А.Н. Дегтеренко. Кодирование речевых сигналов на основе систем с переменной структорой" .
Doka
Цитата(klop @ Dec 8 2006, 13:19) *
Насчет ARM:
1. MP3 для ARM7 должнен быть хорошо оптимизирован
2. Soft ARM7 core вряд ли запашет в FPGA быстрее 20-30 MHz
3. Для нескольких потоков ARM7 явно слабовато будет
4. ARM9 явно лучше но где его взять


ARM9 с частотой ядра 36MHz едва-едва справлялся с Декодированием потока МП3, правда там еще ось крутилась (ЕРОС на Psion Revo)

вообще в последнее время какой-то бум на решение задач неудобными инструментами:
пятибаксовый TMS320VC5501 с десяток каналов не самых легких вокодеров потянет в рил-тайме.
ну а о производительности на поприще ДЕкодирования МП3 можно судить из доки на известную реализацию:
Код
Some results implementation of mp3 decoder for tms320vc55xx platform:
– 44kHz output joint stereo – one of worst case of calculation ~20 MHz (38 frames  ~0.5 MHz per frame)
– 48kHz output mono – one of easy case of calculation ~10 MHz (42 frames  ~0.25 MHz per frame)
Partisan
Цитата(Konstantin Ilichev @ Dec 7 2006, 20:22) *
Добрый день!
Есть проект на Cyclone, в котором входные данные приходят со скоростью 64 кбит/с.
Данные идут в формате PCM A-law, полоса 4 кГц.
Нужно сделать кодер этих данных. И соответственно декодер MP3 в поток 64 кбит/с.

А какой поток должен быть у сжатой речи?
klop
Цитата(Doka @ Dec 8 2006, 14:34) *
ARM9 с частотой ядра 36MHz едва-едва справлялся с Декодированием потока МП3, правда там еще ось крутилась (ЕРОС на Psion Revo)


Ну там еще и ОС крутилась. Видел ASIC на 2 ARM7 который играл и MP3 и MP4.


Цитата(Doka @ Dec 8 2006, 14:34) *
вообще в последнее время какой-то бум на решение задач неудобными инструментами:


Ето точно. Я бы понял такую задачу если бы делался ASIC и какие то ядра лежали в кармане а за какие то много денег просили. Или народ наслушался сказок что FPGA за 30$ заменяет ASIC за те же деньги.
В общем получается "Блондинка за 30 копеек".
alex_os
Вообще для кодирования такого входного сигнала + еще реализация на плисине кодера -напрашивается АДИКМ (кажется G.723). Все остальное слишком сложное...
Konstantin Ilichev
С наступающим НОВЫМ ГОДОМ!!!

Спасибо за поддержку!
Сделали так: заменили MP3 на ADPCM кодирование и реализовали его на внешней TMS.
Решили не ломать голову над циклоном.
Doka
Цитата(Konstantin Ilichev @ Dec 29 2006, 14:12) *
Сделали так: заменили MP3 на ADPCM кодирование и реализовали его на внешней TMS.
Решили не ломать голову над циклоном.

ну вот теперь можно говорить о зарождении направления по решению задач оптимальными методами и удобными инструментами!!
с наступающим! =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.