Всем доброго времени суток!
Есть у меня задача: в видеосистеме реализовать межкадровое вычитание и результат этого вычитания выводить.
По моим представлениям, для этого потребуется три буфера в памяти:
1. Предыдущий кадр
2. Текущий кадр
3. Результат вычитания (используется для обеспечения непрерывности вывода данных)
На данный момент работает следующая система на шине Avalon-ST:
Clocked Video Input >> Всякие фильтры >> Frame Buffer (данные во внешней памяти RAM) >> Clocked Video Output
Есть мысли для решения применить SGDMA в следующем ключе:
- после "Всякие фильтры" устанавливаем SGDMA (stream to memory). Им заполняем 2 буфера памяти (два разных кадра).
- nios напрямую соединен с памятью, с его помощью происходит сравнение кадров и запись результата в 3й буфер.
- затем стоит SGMDA (memory to stream) и FIFO с выводом на clocked video output. Есть ли смысл вместо этой связки (SGDMA и FIFO) использовать Frame Buffer (можно ли этим компонентом напрямую из памяти читать, убрав вход Avalon Sink)?
Будет ли работать такая система? Насколько этот вариант оптимален?
Прошу помощи в определении направления дальнейших действий.