Этапы обработкиОбработка одного кадра происходит как непрерывный поток шагов, выполняемых параллельно:
- Приём видеопотока — пиксели поступают по одному за такт.
- Формирование координат выходного кадра — счётчики определяют, какой пиксель сейчас формируется.
- Получение координаты выборки — по специальной таблице определяется, из какой точки входного изображения нужно взять данные.
- Разделение координаты на целую и дробную часть — целая часть указывает на нужный пиксель, дробная — на то, насколько сильно учитывать соседние пиксели.
- Буферизация строк изображения — так как заранее неизвестно, какая строка пикселей понадобится, в памяти хранится конечный набор последних строк, а не весь кадр.
- Формирование окна из 4 соседних пикселей.
- Билинейная интерполяция — вычисление значения цвета с учётом весов.
- Приведение к требуемому диапазону яркости.
- Выдача пикселя в выходной поток.
Благодаря конвейерной организации после начального накопления данных блок выдаёт по одному пикселю за такт, без простаивания.