реклама на сайте
подробности

 
 
> Использование Speex для сжатия речи, как заточить под свою платформу
frag666
сообщение Sep 6 2007, 06:23
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 31-10-06
Из: Челябинск
Пользователь №: 21 831



Имеется прекрасный Open Sourse проект Speex.Сжимает речь.Есть исходники.Под Windows получилось скомпилить и запустить,всё отлично работает.Теперь стоит задача использовать этот кодек на TMS320C28xx.Если я правильно понимаю,мне достаточно добавить все исходные файлы и библеотеки Speex в свой прект и всё будет работать?Если кто работал с этим кодеком поделитесь опытом.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Itch
сообщение Sep 7 2007, 07:57
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



Сейчас нашел на сайте ADI описание этой проблемы:
Цитата
Using "n" asm constraint results in compiler error
Prognosis: Fixed in Update 5.0 Base Release
Using the "n" constraint in an inline asm results in a compiler error when compiling with the Blackfin VDSP++ compiler.
The effect of the constraint should be to define a literal as an asm statement operand.
The same effect can be achieved by using the literal directly in the asm statement template.
So for example:
asm("// %0 " : : "n"(256) : ); // fails to compile
could be replaced by the following to workaround the problem:
asm("// 256 " : : : );

Т.е. проблема вроде решена в VDSP 5.0. Я не шарю в ассемблере для BF, может кто-нибудь более опытный скажет, как например переписать следущий листинг:
Код
__asm__  (
         "P0 = 15;\n\t"
         "R0 = %1;\n\t"
         "R1 = %2;\n\t"
         //"R0 = R0 + R1;\n\t"
         "R0 <<= 1;\n\t"
         "DIVS (R0, R1);\n\t"
         "LOOP divide%= LC0 = P0;\n\t"
         "LOOP_BEGIN divide%=;\n\t"
            "DIVQ (R0, R1);\n\t"
         "LOOP_END divide%=;\n\t"
         "R0 = R0.L;\n\t"
         "%0 = R0;\n\t"
   : "=m" (res)
   : "m" (a), "m" (bb)
   : "P0", "R0", "R1", "cc");

VDSP ругается здесь на строчку : "=m" (res)
Go to the top of the page
 
+Quote Post
fontp
сообщение Sep 7 2007, 08:19
Сообщение #3


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(Itch @ Sep 7 2007, 11:57) *
Сейчас нашел на сайте ADI описание этой проблемы:

Т.е. проблема вроде решена в VDSP 5.0. Я не шарю в ассемблере для BF, может кто-нибудь более опытный скажет, как например переписать следущий листинг:
Код
__asm__  (
         "P0 = 15;\n\t"
         "R0 = %1;\n\t"
         "R1 = %2;\n\t"
         //"R0 = R0 + R1;\n\t"
         "R0 <<= 1;\n\t"
         "DIVS (R0, R1);\n\t"
         "LOOP divide%= LC0 = P0;\n\t"
         "LOOP_BEGIN divide%=;\n\t"
            "DIVQ (R0, R1);\n\t"
         "LOOP_END divide%=;\n\t"
         "R0 = R0.L;\n\t"
         "%0 = R0;\n\t"
   : "=m" (res)
   : "m" (a), "m" (bb)
   : "P0", "R0", "R1", "cc");

VDSP ругается здесь на строчку : "=m" (res)


Никак она не решена. Это просто разные вещи. Не работали константы - ну заработали
Все буквы разные для VDSP и gcc и часто даже смыслы разные

Для "m" надо писать "memory", если это временная переменная. Если входная или выходная -
нужно переписывать на косвенную или индексную адресацию сам код ([%0]) меняя констрейнты
на "a"
А что писать для разных W или "1"?
Практически это большая ручная работа - переписать эти ассемблерные вставки

Кроме того этот код не очень эффективен, он не знает какие апаратные регистры использовать.
Машинно-независимый ассемблер :-)
Надо смотреть мультимедийный SDK, там или разгребли констрейнты Gcc или отключили эту оптимизацию нафик и пускают С-код - вполне возможно что по быстродействию оптимизирующий компилятор VDSP выиграет у "машинно-независимого ассемблера" gcc :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- frag666   Использование Speex для сжатия речи   Sep 6 2007, 06:23
- - fontp   Цитата(frag666 @ Sep 6 2007, 10:23) Имеет...   Sep 6 2007, 06:49
- - frag666   Спасибо. Попробую взять сорсы для С55 и переделать...   Sep 6 2007, 11:41
- - Itch   Надеюсь автор топика не обидится, если я здесь зад...   Sep 6 2007, 17:51
|- - frag666   Цитата(Itch @ Sep 6 2007, 20:51) Надеюсь ...   Sep 7 2007, 03:45
||- - Puzan   Цитата(frag666 @ Sep 7 2007, 07:45) ...Мн...   Sep 11 2007, 15:19
|- - fontp   Цитата(Itch @ Sep 6 2007, 21:51) Надеюсь ...   Sep 7 2007, 07:26
- - Itch   ЦитатаНадо смотреть мультимедийный SDK, там или ра...   Sep 7 2007, 08:38
|- - fontp   Цитата(Itch @ Sep 7 2007, 12:38) Ага, тож...   Sep 7 2007, 08:45
- - Itch   Скачал я этот SDK. Устанавливаться на студию июня ...   Sep 8 2007, 17:46
- - Itch   Да, все-таки не работает оптимизация Speex под асс...   Sep 10 2007, 08:44
|- - blackfin   Цитата(Itch @ Sep 10 2007, 12:44) Будем ж...   Sep 10 2007, 09:58
||- - Itch   Цитата(blackfin @ Sep 10 2007, 16:58) VDS...   Sep 11 2007, 13:07
|- - fontp   Цитата(Itch @ Sep 10 2007, 12:44) Да, все...   Sep 10 2007, 11:09
- - Itch   Точно про производительность не скажу, но натыкалс...   Sep 18 2007, 06:43
- - fontp   Цитата(Itch @ Sep 18 2007, 10:43) Точно п...   Sep 18 2007, 07:44
- - fontp   Цитата(fontp @ Sep 18 2007, 11:44) Dawid ...   Sep 28 2007, 14:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 22:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016