LINUX.ORG.RU

DSP для композитного видео


0

1

Вот сидим тут с коллегой, как два дурня, на работе. И работаем.

И возникла мысль: мы уже давно используем для обработки видеосигнала стандартную неуклюжую схему — видеокамера (с композитным выходом) → фреймграббер → компьютер → (обработка) → управляющий МК → приводы.

Видно, что в этой цепочке звенья «фреймграббер» и «компьютер» очень уж геморройные: мало того, что компьютер тяжелый, так еще и явно излишний.

Вопрос: думаю, здесь обитают электронщики-линуксоиды (я потому на «казусе» каком-нибудь и не спрашиваю, что там чертовы вендузятники); подскажите, есть ли в мире DSP такой процессор (скажем, со встроенным плисом), который может выполнить простую обработку видеосигнала (вычисление сдвига изображений на основе свертки или вычисления центров тяжести объектов) в псевдореальном времени (процессы медленные, сгодится и полсекунды задержки)?

А то вот глянули на тытрубе видеоролик, как ребята при помощи дурины и LM1881 центр тяжести светового пятна на кадре отслеживали, вот и возник такой вопрос.

Очень уж хочется облегчить свои железяки, а то нонче в СПФ помимо прибора обычно еще пару компьютеров тащат (один — для управления железками, другой — для работы с ПЗСкой). Хотелось бы хотя бы управляющий компьютер выкинуть.

☆☆☆☆☆

Есть Xilinx Zynq, например. Арм проц + плис.
Elphel собрались, я так понял, делать следующую камеру именно на этом камне.

oh-la-la
()
Ответ на: комментарий от Eddy_Em

Под линуксом работает. Средства разработки (Xilinx ISE) это борщ из tcl, Qt, java и может быть чего еще. Огорожено, да, но есть бесплатная версия (WebPack), которой должно хватить в большинстве случаев. Правда все эти тулзы могут работать в режиме коммандной строки (документация есть), так что программировать можно в любимом редакторе а для сборки и всего остального юзать мейкфайлы/cmake/etc.
Те чуваки из эльфеля пилят ezynq - свободный бутлоадер для плисы, чтобы избавиться от ISE, но я не очень в курсе их успехов.

oh-la-la
()
Ответ на: комментарий от oh-la-la

борщ из tcl, Qt, java

Жесть! А просто на сях — нет?

Ну неужто эти плиски на tcl программируются? Ужас!

Eddy_Em ☆☆☆☆☆
() автор топика

А зачем тебе ПЛИС? Что с этими ПЛИСами все носятся? У них очень узкое применение. И если есть возможность избежать их использования, то лучше это сделать.

Почитай про DSP Texas Instruments. DaVinci там и т. д. Поддержка Linux есть. Они как раз для видеообработки используются. Но конкретных советов не дам, так как никогда задачи обработки изображений не стояло, поэтому я не знаю, какая мощность тебе от процесоора нужна. Это надо оценить или прочитать статьи про то, какие подобные задачи кто-то реализовал в железе. Это будет ориентиром для тебя. Вполне возможно, что навороченный DSP и не нужен. Вот цифровой обработкой звука я занимался - делал плату PCI, поэтому тут было бы проще.

Zubok ★★★★★
()
Ответ на: комментарий от Eddy_Em

Не, не, там естественно есть куча библиотек на сях, но всё это обмазано тиклем.
И да, местами тормозит, местами сегфолтится =)

oh-la-la
()
Ответ на: комментарий от Zubok

А зачем тебе ПЛИС?

А что, есть вариант без плиса? Так это только лучше было бы!

Почитай про DSP Texas Instruments

Спасибо, почитаю. Просто поверхностное гугление дало только использование DSP для элементарщины навроде конвертеров интерфейсов или микширования видеосигналов. А мне реальную цифровую обработку надо делать. Возможно, с использованием БПФ, вейвлетов и всякой прочей гонсалесовудчины.

Мощность нужна достаточная, чтобы за максимум полсекунды два кадра скоррелировать, а то и посложней обработку выполнить. Думаю, сотни мегафлопсов хватит.

Вот цифровой обработкой звука я занимался - делал плату PCI, поэтому тут было бы проще.

Фигасе! Крут ты, батько. Я в электронике фиговато. Мне бы что-нибудь готовое, чтобы только запрограммировать и пользоваться.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Ну, сам понимаешь, все зависит от размерности задачи и применяемых алгоритмов. Ведь есть какие-то серийные платы для оптических наблюдений и обработки. Можно посмотреть, что там стоит. Заранее мне трудно сказать, на что ориентироваться. У кого-то всегда больше ресурсом, чтобы методом проб и ошибок выйти на оптимальные решения. Может, университетские разработки какие-то. Надо искать аналоги и подглядеть. Я всегда так делаю. :)

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

Ну, готовье есть у NI. Но, сам понимаешь: они — те еще огораживатели — под мастдайку, с лабвьюшкой и офигенно дорого.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Ну, готовье есть у NI. Но, сам понимаешь: они — те еще огораживатели — под мастдайку, с лабвьюшкой и офигенно дорого.

Хотя бы на них посмотреть надо, на чем они. Электронить - это дело последнее. Когда это становится выгодным, то можно поэлектронить, да. Но времени займет много. Вот TMS-ы вроде бы SDK под Linux имеют. И там линейка обширная. Можно какую-нибудь девборду купить.

Кстати, а GPU какой-нибудь никак не осилит это дело?

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

а GPU какой-нибудь никак не осилит это дело?

Фиг его знает: на куде-то я запросто наваяю, но без понятия, как оно с девбордами.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Фиг его знает: на куде-то я запросто наваяю, но без понятия, как оно с девбордами.

Ну, а просто с видяхой нельзя? Цифруешь картинку и с максимально возможной скоростью закидываешь в память GPU. Даже платы оцифровки можно купить. А дальше пиши себе. Я бы рассмотрел. Видеокарточки - дело доступное. Ищи по темам «Image+processing+GPU». Как-то так. Да и рапараллелить можно.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Zubok

Ну дык, в том-то и прикол: хочется же обойтись без компьютера. На компьютере-то я и так GPU использую (в одной задаче вышло почти на 3 порядка шустрей считать на GPU, нежели в 8 потоков на CPU).

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

А зачем такой прикол? Ищутся приключения? :)

Ведь надо, чтобы работало и было дешево. Ну или ищи девборду на чем-то типа TMS И чтобы там композитный вход был для захвата видео. У них есть SDK для Video/Image processing. Вот, например: http://www.ti.com/lit/pdf/spruf30. В общем, посмотри в ту сторону.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

В общем, посмотри в ту сторону.

Спасибо! Будем смотреть. С электронщиками у нас проблема: их "полтора человека", и те заняты на 400%! А остальные — с хроническим рукожопием. Ну, а я — вообще "не пришей кобыле хвост" — вроде как научный сотрудник, а занимаюсь всякой фигней (причем, такой фигней, в которой ни хрена не разбираюсь ☹).

Eddy_Em ☆☆☆☆☆
() автор топика

Если вам пары сотен мипсов хватит - то вам и DSP не надо. Какой-то девборд на арме/мипсе с видеовходом. Либо еще более суровый вариант - USB захватывалка китайская + какая-то борда типа кубика.

Вроде в Mele A1000 есть нераспаянный видеовход http://rhombus-tech.net/allwinner_a10/hacking_the_mele_a1000/ - можете купить на пощупать.

Хотя я бы собрал коробочку на целероне 847 на мини-итх, с DC-DC 12В БП...

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

Да вот, можно, кстати, взять пресловутый конвертер композита в синхроимпульсы и попытаться на STM32F407 обработать. А коли не попрет, то уж искать что-то более крутое.

В общем, здесь действительно нужна практика. Тупо "взять, да купить то, что нужно" вряд ли получится.

А со всеми этими "кубиками" косяк в том, что из-за пресловутого ФЗ купить их получится по стоимости, равной стоимости полноценного компьютера!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от NiTr0

Хотя я бы собрал коробочку на целероне 847 на мини-итх, с DC-DC 12В БП...

Я бы вот тоже так примерно сделал бы. Дешево, доступно, сердито. Но только сначала надо сделать полную программную реализацию и посмотреть, как она считается на обычном компе. Тем более все под рукой. Если за полсекунды обсчитать успевает, то и нечего мучиться. Можно для разнообразия скомпилировать под другую архитектуру (какой-нибудь контроллер), запустить в каком-нибудь эмуляторе, чтобы оценить скорость. Только после этого можно принимать решение о покупке того или иного железа. Обычный CPU пожет посчитать все ничуть не хуже DSP, хотя у DSP многое заточено именно под алгоритмы обработки сигналов, чтобы быстро считались типовые алгоритмы типа FFT.

Zubok ★★★★★
()
Ответ на: комментарий от Eddy_Em

А со всеми этими «кубиками» косяк в том, что из-за пресловутого ФЗ купить их получится по стоимости, равной стоимости полноценного компьютера!

Речь вроде как шла о габаритах, а не цене? И да, самосбор на ПЛИС/DSP будет дороже готового массового девайса.

NiTr0 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.