stringtranslate.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Осложнения

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

Джаддер

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

Входная задержка

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

Бенчмаркинг

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

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

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

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

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

Рекомендации

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