Задать вопрос
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @Mercury13
    Программист на «си с крестами» и не только
    1. Инициирует видяха, и вообще поток данных для ЖК очень напоминает данные для ЭЛТ-монитора: между строчками пауза, между кадрами пауза побольше. Я это называю «виртуальная развёртка».

    2. Цифровое буферизируется ВСЕГДА. Эра небуферизированного цифрового осталась где-то в первых телетайпах, у которых были раздельные команды CR и LF… просто чтобы телетайп успел вернуть каретку и прокрутить барабан. И то телетайп вынужден преобразовывать последовательный код в N постоянно и одновременно «горящих» битов, и на это нужен буфер по ширине кода — 5 битов или сколько там нужно.

    Большинство мониторов хранит весь кадр, как минимум для работы всяких там ШИМов, овердрайвов и улучшайзеров, но желательно уж передавать данные из буфера на матрицу как можно быстрее.

    3. Хорошо, поднимаем схему первого попавшегося монитора и смотрим. Большая часть монитора — это огромная микросхема производства PixelWorks, которая выполняет все эти штуки с видеопотоком — разбор протокола, апскейлинг, улучшайзинг, овердрайв, генерацию команд для ЖК-панели — аппаратно.

    Где-то рядом находится самый обычный микроконтроллер с ПЗУ, который занимается чтением кнопок, инициализацией здоровенной микросхемы и вмешательством в её видеопоток, чтобы показывать экранное меню. Потому, кстати, в большинстве мониторов меню такое корявое — им занимается не могучая специализированная микросхема, а несчастный 32-битный микроконтроллер.

    Я не настолько разбираюсь в электронике, но сумел идентифицировать схему подсветки (диодной), главную микросхему, микроконтроллер с ПЗУ, обвязку клавиатуры (сколько там кнопочек — шесть?) и блок питания — каждое на своём листе.
    Ответ написан
    64 комментария
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @rPman
    VGA, монитор не хранит ничего, в момент установки видеоразрешения частоты монитора и видеокарты синхронизируются, и монитор ожидает по vga кабелю значение текущего rgb пиксела, в зависимости от типа видеорежима, interlaced через строку или по очереди каждая строка, пикселы ожидаются слева направо снизу вверх (или сверху вниз уже не принципиально), видеорежим подразумевает не только время на кадр, но и к примеру сколько времени нужно ожидать между строками, как кодируется цвет (монохромный или цветной) и т.п..

    Когда то очень давно были даже хитрые выкрутасы, когда процессор напрямую управляя rgb цветами, позволял выдавать изображение, лучше качеством чем в принципе позволяла видеокарта (из за маленького видеобуфера старые видеокарты не умели попиксельные картинки, но умели текстовые, так как текст требует меньше памяти)

    Современные lcd панели, или при использовании vga-hdmi переходника, симулируют работу crt монитора, для чего вынуждены хранить свой буфер текущего кадра, по техническим причинам lcd панель меняет значение пиксела тысячи раз в секунду (они так ШИМ-ом яркость меняют), для этого буфер и нужен.

    dp/hdmi передают данные, кодировав в цифровом виде, но в мониторе уже есть буфер для их хранения.
    Ответ написан