Не обновляют ли мониторы атомарно / мгновенно свои пиксели?

602
Alec

Я пытаюсь понять, что вызывает разрыв экрана. Предположим, что монитор может мгновенно обновлять каждый из своих пикселей. Тогда я думаю, что обновления будут работать так:

  1. Монитор решает начать обновление
  2. Он смотрит на любой кадр, который GPU в данный момент отправляет.
  3. Атомно обновляет все пиксели мгновенно.

При такой процедуре кажется совершенно невозможным разорвать экран, полностью игнорируя частоту обновления и FPS. Только одно изображение рисуется в данный момент.

Теперь я знаю, что это не то, как ЭЛТ-мониторы работают со своим сканирующим пистолетом (или как там это называется). Но у меня сложилось впечатление, что новые технологии мониторов не работают так. Действительно ли они обновляют пиксели постепенно, а не сразу?

0

2 ответа на вопрос

1
Mokubai

Шаги 2 и 3 предполагают, что все данные кадра передаются на монитор непосредственным и атомарным способом, а не так. «Тупой» монитор никогда не «видит» (или не буферизирует) полный кадр видео. Мониторы по-прежнему работают по тем же принципам, когда мы использовали сканирующие электронные лучи для рисования изображений. Телевизоры Snazzier могут буферизовать изображения и выполнять межкадровую обработку, но монитор компьютера, вероятно, этого не сделает.

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

Ваши шаги 2 и 3 действительно выполняются на видеокарте, а шаг 3 будет «отображаться» только в том случае, если вы включите вертикальную синхронизацию.

В любой точке видеокадра графический процессор может принять решение об изменении своего видеобуфера на новое изображение и продолжить отправку данных из этой точки в буфер. Если вертикальная синхронизация не включена, то она будет продолжать посылать новые данные буфера на монитор с той же точки, с которой они были отключены в старом буфере. Это ваша точка слезы.

Если у вас включена вертикальная синхронизация, то графический процессор будет ожидать отправки полного кадра, прежде чем переключит буфер, и в этом случае вы не увидите «разрыв».

Фактически, причина, по которой эти технологии синхронизации называются «Вертикальная синхронизация», заключается в том, что каждый последующий кадр записывается вертикально даже на самых новых мониторах. music2myear 7 лет назад 1
По общему признанию, порядок кадрового буфера «справа налево, сверху вниз» (отправить строку, перейти к следующему столбцу, отправить другую строку) является простым переключением для перехода к «сверху вниз, справа налево» (отправить столбец, перейти к следующему ряду, отправить столбец) с учетом современной электроники, но вертикальная синхронизация всегда означала «дождаться верхнего угла кадра». В любом случае вертикальная синхронизация является «началом кадра» независимо от того, как упорядочен этот кадр. Mokubai 7 лет назад 0
@ music2myear На самом деле я ожидал бы, что метод «столбец, затем строка» действительно будет * замечен * в мобильных телефонах, где вы фактически удерживаете экран в неправильной ориентации, то есть в портретном режиме. Как только вы держите устройство в альбомном режиме (лучше всего для просмотра видео), вы снова возвращаетесь к обновлению экрана в режиме строки / столбца. Mokubai 7 лет назад 0
И мне бы очень хотелось больше информации на атомных экранах. Найдем ли мы их в iPhone 9? music2myear 7 лет назад 0
@ music2myear Я думал, что мы увидим их в обновлении Android Nuclear, но, видимо, нет. Mokubai 7 лет назад 0
Да, с Nougat у нас только что появились экраны с питанием от Snickers. music2myear 7 лет назад 0
Ах! Хорошо. Мне не хватало того, что графический процессор не передавал весь кадр сразу (задним числом это кажется очевидным ... было бы много данных для отправки сразу). Хотя я все еще немного сбит с толку ... поэтому графический процессор отправляет данные на монитор, которые в некотором смысле составляют "рисовать пиксель (x, y, z) цветом (r, g, b)", верно? Так как же влияет частота обновления монитора? Alec 7 лет назад 0
@Mokubai перечитывает ваш ответ + комментарии Думаю, я понимаю: графический процессор занят созданием изображений для отображения и хранением их в буферах. Как быстро он генерирует эти изображения, так это «игровой FPS». В то же время другой процесс (также часть GPU?) Считывает пиксели из буферов и отправляет их на монитор. Скорость, с которой это происходит, является частотой обновления? Alec 7 лет назад 0
@alecb Да, это в значительной степени подводит итог тому, что происходит. Монитор практически не имеет возможности хранить какие-либо данные, поэтому он просто рисует каждый пиксель один за другим по мере их поступления. Mokubai 7 лет назад 1
@Mokubai Итак, что же ограничивает частоту обновления? Как быстро монитор может перекрасить отдельный пиксель, умноженный на количество пикселей? Alec 7 лет назад 0
@alecb По сути, да. Ваш текущий монитор FullHD имеет около 2 миллионов пикселей в трех разных цветах, что означает, что ему необходимо выполнить 6 миллионов настроек ЖК-дисплея * за обновление экрана *. Выполнение этого со скоростью 60 кадров в секунду означает 360 миллионов обновлений пикселей в секунду. На самом деле это очень большой объем данных и множество физических настроек на ЖК-дисплее, чтобы показать вам картинку. Более высокие частоты обновления означают больше изменений в секунду, а более высокие разрешения означают больше пикселей. На самом деле, многое происходит, чтобы показать даже пустой экран. Mokubai 7 лет назад 1
0
music2myear

Разрыв экрана - это визуальный артефакт на видеоэкране, где устройство отображения отображает информацию из нескольких кадров за один экран. Артефакт возникает, когда подача видео на устройство не синхронизирована с частотой обновления дисплея.

Источник: Википедия .

Все мониторы, LCD и CRT, обновляются на часах в известное и предсказуемое время. Различные технологии позволяют графической карте знать этот тактовый цикл, так что графический процессор может отправлять данные в наилучшее время, чтобы монитор мог их получить и отображать количество пикселей следующего экрана.

Обычно это называется частотой обновления, или на некоторых телевизорах вы увидите объявленное число Гц (то есть циклов в секунду). Наиболее распространенным в наши дни является, вероятно, 60 Гц, что означает 60 циклов в секунду. Хотя 120 Гц становится все более распространенным.

Различные технологии синхронизации, упомянутые выше, обычно используются с целью предотвращения разрыва экрана. У них обычно есть пределы относительно того, сколько они могут решить, хотя.

Это не решает мой вопрос. Посмотрите на 3 шага «идеального» процесса, о котором я упоминал в своем посте. Если это то, что произошло, то я не вижу, как несинхронизированная частота обновления может привести к разрыву экрана. Alec 7 лет назад 0
Тогда не понятно, о чем вы спрашиваете. Вы спрашиваете, мигают ли экраны LCD / LED весь экран пикселей в одно и то же время, а не прогрессивное сканирование ЭЛТ? Нет, если вы нацелите телевизионную видеокамеру (которая обычно работает с немного иной частотой кадров на большинстве ЖК / светодиодных экранов, вы увидите то же самое разрывание / раздувание, хотя обычно в менее очевидной степени, что дополнительно смягчается с помощью высокочастотных экранов Вы видите на ЭЛТ. Это должно сказать вам, что пиксели на ЖК / светодиодном экране все еще постепенно распределяются по экрану упорядоченным образом. music2myear 7 лет назад 1
Хорошо, да, это то, что я спрашиваю. Как быстро это обычно происходит? (например, время между изменением первого пикселя и последним изменением пикселя?) Alec 7 лет назад 0
@alecb это будет происходить с той же частотой, что и частота обновления вашего монитора. для монитора с частотой 60 Гц частота обновления будет составлять 1/60 = 0,0166 секунды или каждые 16 миллисекунд. Mokubai 7 лет назад 0
Это предполагает, что как только сканирование заканчивается справа внизу, оно сразу же начинается обратно вверху слева. Мы знаем, что это так? music2myear 7 лет назад 1
«Каждые 16 мс» не означают, что весь процесс занимает 16 мс, не так ли? Это действительно так? Это специально замедляется, чтобы занять столько же, сколько частота обновления? Или частота обновления в основном определяется тем, насколько быстро монитор может обновлять пиксели? Мониторы могут иметь разные частоты обновления, хотя, нет? Alec 7 лет назад 0

Похожие вопросы