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

 
 
> Оптимизация Speex под TI, Помогите с ассемблером
sigmaN
сообщение May 30 2008, 23:17
Сообщение #1


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Прошу помощи в оптимизации speex.
Для BF там есть оптимизированные функции на ассемблере, я хочу закодить аналогично для TI.
Если с TI хотя-бы как-то может разберусь, то BF я в глаза никогда не видел!
Если бы отозвался человек, который смог бы прокомментировать функции BF, то можно было-бы, соблюдая "ход мысли" закодить то-же для TI.
т.е. есть функция на Си, есть функция на BF АСМ, надо проанализировав то и другое(потому как асм функции переорганизованы и если и похожи на Сишные то только в общей логике) увидеть важные моменты, понять что изменили авторы и почему они это сделали.
После этого, я думаю, можно сделать и для TI, DSP ведь все похожи, главное уловить мысль.

Поможете?


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
fontp
сообщение May 31 2008, 05:34
Сообщение #2


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

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



Я не думаю что буквальное перекодирование ассемблера BF в другой - хорошая идея. Просто уже потому, что для этого нужно хорошо знать и тот и другой.

Из реализации для BF можно почерпнуть много пользы, но другим способом
1) во-первых отследив какие модули требуют оптимизации в первую очередь, то есть наиболее затратны. Оптимизированые модули для bf - это h-файлы в которые на ассемблере заинлайнены некоторые функции - начиная от математических операций заканчивая фильтрами и поисковыми процедурами
fixed_bf.h
filters_bf.h
ltp_bf.h
...
cb_search_bf.h

Из них можно выписать названия функций требующих оптимизации, что само по себе не очевидно
(какие фунуции требуют оптимизации а какие - нет)

2. Интересна и не слишком-то стандартна сама метода, которой был ассемблерный код интегрирован в С - ассемблерные вставки в h-файлы. Возможно, что для gcc этот подход естественный, но в обычной ситуации не очень типичный и не очень часто используется. Если Вы не собираетесь создавать суперкод на продажу, а собираетесь оптимизировать его только до достижения некоторых целевых показателей, устраивающих вас по быстродействию - то такой подход смотрится эффективным - Вы можете отдельно по-быстрому оптимизировать отдельные критические циклы в коде , а не только модули целиком
Go to the top of the page
 
+Quote Post
sigmaN
сообщение May 31 2008, 13:02
Сообщение #3


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Вы правы. Именно по такому пути я и хочу пойти.
Мне нужна помощь именно в коментариях того, что перекодировано, каким образом(за счёт чего) цикл перекодированный именно так - стал работать быстрее.
В мануале спикса даны эти самые функции. Автор рекомендует именно их переписывать в первую очередь.
для BF именно их и оптимизируют(ну и ещё парочку дополнительно).
Супер код на продажу не нужен.
Нужно его по возможности ускорить, чтобы он смог работать прямо из flash(в лучшем случае). Но хотя-бы когда приемлимая часть кода в RAM...
Сейчас, даже если код этих самых критичных функциийи и RTS library запускать из оперативки - всё равно не получается realtime. Запустить весь код из оперативки можно - но только стандартный кодер+декодер.... Тогда он успеват без проблем.

Также, хочу прикрутить TI реализацию FFT к спиксу.
Когда займусь - тоже, наверняка, нужна будет ваша помощь...
Как считаете, вообще реально из флэши запустить, а оперативку только для переменных??


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Jun 2 2008, 12:46
Сообщение #4


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



какой у вас проц, у меня на 5509 6 каналов работает в реалтайме все написанное на С.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jun 7 2008, 13:57
Сообщение #5


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Проц) DSP контроллер TMS320F28335.
В реалтайме работает только сам кодер+декодер(без эхо и шумодава).


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 22:41
Рейтинг@Mail.ru


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