Попытался собрать в кучу инфу, которую нашел, но, возможно, все неправильно понимаю.
Что происходит после того, как сигнал пришел на монитор:
1) Сначала данные помещаются в Input buffer (там помещается одна строка).
2) Дальше развилка
- Если требуется масштабирование, то скалер переносит данные из Input buffer в Scaler buffer. После обработки строки скалером, ее переносит в Frame buffer видеопроцессор монитора.
- Если масштабирование не требуется (пришла картинка с родным разрешением), то видеопроцессор монитора переносит данные из Input buffer сразу в Frame buffer.
3) Если требуется пост-обработка (а обычно требуется), например, корректировка яркости, контрастности и т.п., то они проходят через Line buffer:
- Этой работой занимаются специализированные схемы обработки изображения (например, цифро-аналоговые преобразователи — DAC).
- Они помещают строку из Frame buffer в Line buffer
- Обрабатывают эту строку
- Возвращают назад в Frame buffer
4) Все, кадр готов к выводу на матрицу.
Непосредственно, вывод на матрицу:
1) Контроллер по своему внутреннему таймеру определяет, что нужно начинать процесс вывода кадра.
2) Контроллер построчно выводит кадр на экран (Scan out):
- Из Frame buffer берется одна строка (ScanLine).
- Эта строка выводится на матрицу.
3) Далее следует этап VBLANK, длится ~5% общего времени обновления кадра.