stringtranslate.com

Разрыв экрана

Типичный артефакт разрыва видео (имитированное изображение)

Разрыв экрана [1]визуальный артефакт на видеодисплее , при котором устройство отображения отображает информацию из нескольких кадров на одном экране. [2]

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

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

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

Профилактика

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

Большинство систем используют множественную буферизацию и некоторые средства синхронизации циклов обновления дисплея и видеопамяти. [3]

Option "TearFree" "boolean": отключить или включить обновления TearFree. Этот параметр заставляет X выполнять всю визуализацию в задний буфер перед обновлением фактического дисплея. Он требует дополнительного выделения памяти того же размера, что и кадровый буфер, иногда дополнительной копии и требует отслеживания повреждений. Таким образом, включение TearFree требует больше памяти и работает медленнее (снижает пропускную способность) и вносит небольшую задержку вывода, но это не должно влиять на задержку ввода. Однако обновление экрана затем выполняется синхронно с вертикальным обновлением дисплея, так что все обновление завершается до того, как дисплей начнет свое обновление. То есть всегда виден только один кадр, что предотвращает некрасивый разрыв между двумя видимыми и разными кадрами. Это повторяет то, что должен делать менеджер композитинга, однако TearFree перенаправит обновления композитинга (и обновления полноэкранных игр) непосредственно на сканирование, таким образом, не неся дополнительных накладных расходов в композитном случае. Не все менеджеры композитинга предотвращают разрывы, и если выходные данные повернуты, разрывы все равно будут наблюдаться без включения TearFree.

—  Из драйвера графического процессора Intel с открытым исходным кодом, https://manpages.debian.org/buster/xserver-xorg-video-intel/intel.4.en.html

Вертикальная синхронизация

Вертикальная синхронизация — это опция в большинстве систем, в которой видеокарте запрещено выполнять какие-либо действия, видимые для памяти дисплея, пока монитор не завершит текущий цикл обновления.

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

Видеоадаптеры Nvidia и AMD предоставляют опцию «Adaptive Vsync», которая включает вертикальную синхронизацию только тогда, когда частота кадров программного обеспечения превышает частоту обновления дисплея, отключая ее в противном случае. Это устраняет заикание, возникающее, когда частота кадров рендеринга падает ниже частоты обновления дисплея. [4]

В качестве альтернативы, такие технологии, как FreeSync [5] и G-Sync [6], меняют концепцию и адаптируют частоту обновления дисплея к контенту, поступающему с компьютера. Такие технологии требуют особой поддержки как со стороны видеоадаптера, так и со стороны дисплея.

Осложнения

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

Дрожь

Вертикальная синхронизация также может вызывать артефакты в видео- и кинопрезентациях, поскольку они обычно записываются с частотой кадров, значительно ниже типичной частоты кадров монитора (24–30 кадров/с). Когда такой фильм воспроизводится на мониторе, настроенном на типичную частоту обновления 60 Гц, видеоплеер довольно часто пропускает крайний срок монитора, а промежуточные кадры отображаются немного быстрее, чем предполагалось, что приводит к эффекту, похожему на дрожание . (См. Telecine: Различия в частоте кадров .)

Задержка ввода

Видеоигры, которые используют широкий спектр движков рендеринга, как правило, визуально выигрывают от вертикальной синхронизации, поскольку движок рендеринга обычно должен строить каждый кадр в реальном времени, основываясь на том, что переменные движка указывают в момент запроса кадра. Однако, поскольку вертикальная синхронизация вызывает задержку ввода , она мешает интерактивной природе игр [7] и особенно мешает играм, которые требуют точного времени или быстрого времени реакции.

Бенчмаркинг

Наконец, бенчмаркинг видеокарты или движка рендеринга обычно подразумевает, что аппаратное и программное обеспечение рендерит дисплей как можно быстрее, без учета возможностей монитора или результирующего разрыва видео. В противном случае монитор и видеокарта будут тормозить программу бенчмаркинга, что приведет к недействительным результатам.

Другие методы

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

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

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

Ссылки

  1. ^ Шрофф, Лиза (23 октября 2022 г.). «Что такое разрыв экрана? Как это исправить!». GPUinsiders .
  2. ^ Как бороться с разрывами, virtualdub.org, 2005-10-31, заархивировано из оригинала 2015-05-30 , извлечено 2015-05-19
  3. ^ Vsync для решения проблемы разрывов экрана
  4. ^ Adaptive VSync, nvidia.com , получено 28.01.2014
  5. ^ FreeSync amd.com [ мертвая ссылка ]
  6. ^ «Nvidia G-Sync — плавный шаг для компьютерных игр».
  7. ^ Дерек Уилсон (2009-07-16), Исследование задержки ввода изнутри и снаружи, AnandTech , получено 2012-01-15