Разрыв экрана - это визуальный артефакт на экране видео, где устройство отображения показывает информацию из нескольких кадров на одном изображении экрана.
Артефакт возникает, когда поток видео на устройство не синхронизирован с частотой обновления дисплея. Это может быть вызвано несовпадением частоты обновления, и линия разрыва затем перемещается по мере изменения разности фаз (со скоростью, пропорциональной разнице частот кадров). Это также может произойти просто из-за отсутствия синхронизации между двумя равными частотами кадров, и тогда линия разрыва находится в фиксированном месте, которое соответствует разности фаз. Во время видеодвижения разрыв экрана создает рваный вид, поскольку края объектов (например, стены или дерева) не совпадают.
Разрыв может происходить с большинством распространенных технологий отображения и видеокарт, и наиболее заметен в горизонтально движущихся визуальных эффектах, например при медленном перемещении камеры в фильме или классических видеоиграх с боковой прокруткой.
Разрыв экрана менее заметен, когда рендеринг завершается более чем двумя кадрами в течение одного и того же интервала обновления, поскольку это означает, что на экране есть несколько более узких разрывов вместо одного более широкого.
Способы предотвращения разрывов видео зависят от устройства отображения и технологии видеокарты, используемого программного обеспечения и характера видеоматериала. Наиболее распространенное решение - использовать множественную буферизацию.
. Большинство систем используют множественную буферизацию и некоторые средства синхронизации циклов обновления дисплея и видеопамяти.
Вертикальная синхронизация - это опция в большинстве систем, в которых видеокарта не может делать что-либо, видимое для памяти дисплея, до тех пор, пока монитор не завершит свой текущий цикл обновления.
В течение интервала вертикального гашения драйвер приказывает видеокарте либо быстро скопировать закадровую графическую область в активную область отображения (двойная буферизация ), либо или обрабатывать обе области памяти как отображаемые и просто переключаться между ними (листание страницы ).
Видеоадаптеры Nvidia и AMD предоставляют опцию «Adaptive Vsync», которая включает вертикальную синхронизацию только тогда, когда частота кадров программного обеспечения превышает частоту обновления дисплея, в противном случае она отключается. Это устраняет заикание, которое возникает, когда частота кадров механизма рендеринга падает ниже частоты обновления дисплея.
В качестве альтернативы такие технологии, как FreeSync и G-Sync, меняют концепцию и адаптирует частоту обновления дисплея к контенту, поступающему с компьютера. Такие технологии требуют специальной поддержки как со стороны видеоадаптера, так и со стороны дисплея.
Когда используется вертикальная синхронизация, частота кадров механизма рендеринга ограничивается частотой кадров видеосигнала. Эта функция обычно улучшает качество видео, но в некоторых случаях требует компромиссов.
Вертикальная синхронизация также может вызывать артефакты в видео- и кинопрезентациях, поскольку они обычно записываются с частотой кадров значительно ниже стандартной частоты кадров монитора (24–30 кадров / с). Когда такой фильм воспроизводится на мониторе с типичной частотой обновления 60 Гц, видеопроигрыватель довольно часто пропускает крайний срок монитора, и промежуточные кадры отображаются немного быстрее, чем предполагалось, что приводит к эффекту, подобному дрожанию. (См. Telecine: Различия в частоте кадров.)
Видеоигры, в которых используется широкий спектр механизмов рендеринга, обычно визуально выигрывают от вертикальной синхронизации, поскольку Обычно ожидается, что движок рендеринга будет строить каждый кадр в реальном времени на основе того, что переменные движка задают в момент запроса кадра. Однако, поскольку вертикальная синхронизация вызывает задержку ввода, она мешает интерактивному характеру игр и, в частности, мешает играм, которые требуют точного времени или быстрого времени реакции.
Наконец, сравнительный анализ видеокарты или механизма рендеринга обычно подразумевает, что аппаратное и программное обеспечение визуализирует дисплей как можно быстрее, независимо от возможностей монитора или результатов видео разрывание. В противном случае монитор и видеокарта будут блокировать программу тестирования, что приведет к неверным результатам.
Некоторые графические системы позволяют программному обеспечению выполнять доступ к своей памяти так, чтобы они оставались в одной и той же точке времени относительно цикла обновления аппаратного обеспечения дисплея, известного как прерывание растра или мчащийся луч. В этом случае программное обеспечение записывает данные в только что обновленные области дисплея, оставаясь сразу за активной точкой обновления монитора. Это позволяет использовать подпрограммы копирования или механизмы рендеринга с менее предсказуемой пропускной способностью до тех пор, пока механизм рендеринга может «догнать» активную точку обновления монитора, когда она отстает.
В качестве альтернативы программное обеспечение может вместо этого опережать активную точку обновления. В зависимости от того, насколько далеко вы решите остаться, этот метод может потребовать кода, который копирует или отображает изображение с фиксированной постоянной скоростью. Слишком большая задержка приводит к тому, что монитор иногда обгоняет программное обеспечение, что приводит к артефактам рендеринга, разрывам и т. Д.
Демонстрационное программное обеспечение в классических системах, таких как Commodore 64 и ZX Spectrum часто использовали эти методы из-за предсказуемости соответствующих видеосистем для достижения эффектов, которые в противном случае были бы невозможны.