[an error occurred while processing this directive]
|
Я постараюсь описать задачу:
Есть компьютер с картой видеозахвата, к которой подключена аналоговая видеокамера. Мы получаем с карты видеокадр и оцифровываем, т.е. превращаем в двумерную матрицу целых чисел размерностью NxM, где N и M - соответственно высота и ширина кадра в пикселах. Каждое число в матрице - это яркость соответствующего пиксела. Далее необходимо получить контура объектов, находящихся на изображении. Я напишу упрощенную формулу, но смысл понятен:
F(N,M)- исходная матрица
G(N,M)- матрица контуров, вычисляемая по формуле:
G(i,j)=1/4((F(i-1,j+1)+F(i,j+1)+F(i+1,j+1))-(F(i-1,j-1)+F(i,j-1)+F(i+1,j-1)))
Из формулы понятно, какие действия необходимо произвести над каждым элементом исходного массива, чтобы получить целевой массив. Частота выборки кадров - 15 кадр/с. Для кажлого кадра мы делаем это преобразование. Когда я делаю эту обработку на компе Celeron/1.2GHz, я успеваю. Но по условиям задачи мы должны использовать комп PC/104 с процом Geode/266MHz. На нем сейчас я обрабатываю кадры с частотой 1.5 кадр/с. Есть мнение (которое лично я не разделяю), что если в PC/104 установить плату с DSP TMS320C6202/250MHz и использовать его в качестве сопроцессора, которому будет передаваться массив F, а DSP будет вычислять массив G и передавать его обратно, то можно повысить скорость обработки кадров. Насколько это мнение верно? Все остальные требования по энергопотреблению, размерам и цене не важны. Главное - обеспечить требуемую производительность 15 кадр/c.
E-mail: info@telesys.ru