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

    @krv2k Автор вопроса
    Mercury13,
    увеличивает задержку между переключением буферов и появлением изображения на мониторе

    Не вижу причин на появление задержки, если у монитора есть буфер и мы передадим данные в него быстрее.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    rPman, кажется, вся эта многоэтапная постобработка - это фишки телевизоров. Здесь я согласен, задержка может быть очень большой. Но меня больше интересуют мониторы, там такого, в принципе, быть не должно.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Mercury13, "Разрыв означает, что в видеопотоке появились новые данные. "
    Это если данные аналоговые. Но у нас цифра, и отдельные каналы взаимодействия видеокарты и монитора. Не вижу проблем сигнализировать другими способами.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    rPman, правильно ли я понимаю, что в этом случае используется полнокадровый буфер на стороне монитора и будет задержка в 1 цикл?

    1) Цикл №1
    - видеокарта передает кадр №1
    - монитор принимает его и сохраняет в буфер
    2) Цикл №2
    - видеокарта передает кадр №2
    - монитор выводит кадр №1
    - на освободившееся место в буфере начинает записываться кадр №2

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

    @krv2k Автор вопроса
    rPman,
    а всякие HDR и вовсе требуют содержимое всего буфера кадра

    Но тогда они требуют также и вертикальной синхронизации, правильно? Да и задержка вывода в этом случае увеличивается, так?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    rPman, так вот вопрос в том числе про отправку кадра. Правильно ли я понимаю, что если видеокарта отправила одну строку кадра, то эта строка нигде не задержится и сразу отрисуется на матрице? То есть, передача кадра всегда синхронизирована с выводом изображения?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Mercury13,
    А зачем?

    Я имел в виду не задержку, а, наоборот, передачу кадра быстрее, чем может его отобразить монитор (скорость интерфейса выше).
    И это кажется не усложнением, а упрощением. Вместо синхронизации передачи каждой строки, мы синхронизируем только передачу кадра. То есть, передали быстро в буфер монитора кадр, а монитор уже сам с ним разбирается.

    Для примера возьмем монитор 60 Гц.
    1) Экран обновляется за 16,7 мс.
    2) Передать кадр мы можем, допустим, за 5 мс.
    3) Этот кадр записывается в буфер монитора.
    4) Монитор выводит этот кадр за 16 мс.

    Здесь нам нужно лишь синхронизировать время передачи нового кадра, а за счет быстрого интерфейса мы можем передать его быстрее. Я предполагал, что по сравнению с CRT направление ЖК ушло именно в эту сторону. Или все не так и передача до сих пор синхронизируется построчно?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    rPman, Frame buffer - это кадровый буфер в самом мониторе, я про него.
    На стороне видеокарты Front buffer (передний буфер), из которого передается кадр. Да, новый кадр готовится в другом буфере, и они потом меняются местами. Если не включена вертикальная синхронизация, то он может поменяться в момент передачи.

    Я тут понял, что на текущий момент у меня непонимание в одном ключевом вопросе, который не дает мне дальше продвинуться.
    Всегда ли в мониторах есть Frame buffer на полный кадр, и изображение выводится на матрицу с него. Варианты следующие:
    1) Да, Frame buffer на полный кадр есть, процессы передачи кадра и его вывода не синхронизированы.
    2) Да, Frame buffer на полный кадр есть, но процессы передачи кадра и его вывода синхронизированы.
    3) Нет, Frame buffer на полный кадр нет, соответственно, процессы передачи кадра и его вывода синхронизированы.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Mercury13, так если есть полный кадровый буфер, то можно и не синхронизировать скорости: передали за 5 мс, а вывели за 10 мс. Вроде, логично, если весь сигнал в цифре. Зачем монитору синхронизироваться с видеокартой, если можно просто читать из буфера что там есть? Или так не делают по какой-то причине?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Mercury13,
    они могли задерживать изображение на два-три кадра

    Да, что-то такое помню, но не про задержку в 2-3 кадра. Не совсем понятно как это могло быть, ведь скорость распространения сигнала не может так сильно замедлится. Все эти 2-3 кадры должны были храниться в каких-то буферах, иначе данные пропали бы.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Кажется, начинаю понемногу понимать.

    1) При обычной вертикальной синхронизации, если кадр не готов, то видеокарта отправляет повторно старый, или ничего не делает, рассчитывая на полный кадровый буфер в мониторе? А при G-Sync/FreeSync?
    2) При G-Sync/FreeSync монитор ждет полного кадра, чтобы начать его отрисовывать? В этом случае, наверное, кадр на полной скорости передается?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Правильно ли я понимаю, что у ЖК-монитора всегда есть полноценный Frame buffer? Ведь только в этом случае не нужно синхронизировать передачу кадра и вывод его на экран.

    Я процесс представлял следующим образом:
    - Видеокарта передала кадр максимально быстро согласно скорости интерфейса
    - Монитор вывел кадр как успел

    Или это не так и скорость передачи синхронизируется со скоростью обновления экрана, чтобы монитор сразу выводил то, что прислали?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    rPman, ок, не будем отвлекаться на CRT. Также пока не будем учитывать всякие вертикальные синхронизации и прочие улучшайзеры.
    Правильно ли я понимаю, что при использовании в том числе цифровых протоколов (например, DP):
    1) Видеокарта по готовности кадра помещает его в Front buffer и начинает отправку на монитор. Кадр отправляется построчно.
    2) Кадр в мониторе помещается Frame buffer, откуда выводится на матрицу контроллером дисплея. Также построчно.
    3) Монитор не знает, что на текущий момент находится в Frame buffer, целый кадр или состоящий из нескольких разных кадров.

    Ну и дополнительный вопрос. Если кадр готов, но прошлый еще не до конца передан, то Front buffer обновляется или ожидается окончание передачи предыдущего?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Немного резюмирую:
    1) Данные передаются из Front buffer видеокарты (в момент готовности кадра) в Frame buffer монитора. При этом до окончания передачи кадра Front buffer не обновляется.
    2) Монитор постоянно построчно читает данные из Frame buffer и выводит их (а иначе он не успеет поддерживать свою частоту обновления). При этом монитор не знает, полный кадр сейчас находится в Frame buffer или части двух (или более) разных, просто выводит что есть.

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

    @krv2k Автор вопроса
    Вова, кажется, в современных мониторах это работает по-другому, ведь технологии совершенно другие (я про цифровые интерфейсы и ЖК-экраны). Или нет?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Вова, спасибо, понял что вы имели в виду. Про вертикальные и горизонтальные синхроимпульсы в принципе понятно, также понятно как работает вертикальная синхронизация частоты кадров (эта та, про которую как раз статья на вики) на ЭЛТ-мониторах. Непонятным остается вопрос как это работает на ЖК-мониторах при использовании цифровых интерфейсов (DP, например)? С какими-нибудь буферами или аналогично?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Вова,
    Используется ли аналоговый сигнал внутри LCD мониторов - я не знаю

    Как тогда применяются настройки монитора в части яркости и контрастности? Кто и в какой момент этим занимается?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Вова,
    в некоторых случаях frame buffer (кадровый буфер) может располагаться в мониторе

    В современных мониторах он обычно есть или нет? Если нет, то как данные с кабеля (например, DP) попадают на матрицу? Контроллер дисплея в реальном времени (как в ЭЛТ-мониторах) получает их и обновляет матрицу?
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    Вова, к сожалению, в статься кроме слов "V-Sync помогает избавиться от разрывов" ничего больше нет. Понимание работы V-Sync - это следующий шаг после того, как пойму принцип работы без нее.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @krv2k Автор вопроса
    CityCat4, ну почти знания ради знания. Хочу разобраться как работают опции в параметрах драйвера и почему именно так (вертикальная синхронизация, быстрая синхронизация и т.п.), чтобы осознанно настраивать их.
    Написано