Подтвердить что ты не робот

Какова самая быстрая библиотека FFT для устройств iOS/Android ARM?

Какова самая быстрая библиотека FFT для устройств iOS/Android ARM? И какая библиотека для людей обычно используется на платформах iOS/Android? Я предполагаю, что vDSP - это библиотека, наиболее часто используемая в iOS.

EDIT: мой код находится в http://anthonix.com/ffts и использует лицензию BSD. Он работает на Android и iOS, и он быстрее, чем libav, FFTW и vDSP.

EDIT2: если кто-либо может предоставить доступ к машине POWER7 (или другим машинам), напишите мне. Было бы очень благодарно.

Приветствия,

4b9b3361

Ответ 2

@Anthony: Хотя NEON может обрабатывать упакованный формат очень хорошо с инструкцией VLD, он медленнее, чем VLDMIA. Поэтому разделенный формат по-прежнему предпочтительнее ИМО. Кроме того, откуда вы взяли снимок экрана? Это ваше собственное приложение или какой-то инструмент для сравнения?

@Brad: Я не думаю, что ракурс ускорения очень хорошо оптимизирован. Это довольно просто написать рабочие коды NEON, которые уже во много раз быстрее, чем на ARM. Большинство кодеров NEON останавливаются, поскольку дальнейшая оптимизация требует гораздо больших усилий - независимо от того, насколько они "осведомлены".

Ответ 3

Я сравнивал множество оптимизированных по NEON библиотек FFT на ARM Cortex-A9, и libav", безусловно, самый быстрый код FFT, но это: - однопоточный, - поддерживает только 1D FFT, - поддерживает только параметры мощности-2, - и не имеет различных оптимизаций для реального ввода/вывода (это всего лишь комплексно-сложный БПФ).

С другой стороны, "FFTW" (официальная версия или версия Vesperix) является многопоточным, поддерживает 2D FFT, поддерживает измерения без использования мощности с очень небольшим штрафом и имеет полную оптимизацию для реального вход/выход вместо просто сложного ввода/вывода.

Таким образом, в зависимости от ваших требований FFT, FFTW может быть быстрее для вашего проекта из-за дополнительных функций, но если вам нужен только FFT, который предоставляет libav (или вы сами записываете дополнительные функции, используя NEON и многопоточность), тогда libav - это самый быстрый 1D комплексно-сложный код FFT.

Чтобы дать вам показания, кажется, что оптимизация FFTW NEON была выполнена учеником парня, который выполнял оптимизацию NEOBIVAV NEON. Так что бы вы предпочли код у ученика или наставника, -)

Другая проблема заключается в том, что libav использует лицензию LGPL, тогда как FFTW использует лицензию GPL, поэтому она более ограничительна, если только вы не готовы заплатить большую сумму денег, чтобы купить соответствующую лицензию для FFTW.

(Лично я закончил писать свои собственные функции 2D и реальных данных, используя NEON и многопоточность поверх libav 1D FFT, но было много усилий, так как я не был экспертом FFT!)

Ответ 4

Попробуйте также Cricket FFT. Он также имеет неоновые оптимизации и имеет очень разрешительную лицензию - zlib.