В вычислительной технике аппаратное наложение , тип видеоналожения , обеспечивает метод рендеринга изображения на экран дисплея с выделенным буфером памяти внутри компьютерного видеооборудования . Метод направлен на улучшение отображения быстро движущегося видеоизображения — например, компьютерной игры , DVD или сигнала с телевизионной карты . Большинство видеокарт, произведенных примерно с 1998 года, и большинство медиаплееров поддерживают аппаратное наложение. [1]
Наложение — это выделенный буфер, в который одно приложение может рендерить (обычно видео), не неся значительных затрат производительности на проверку обрезки и перекрытия рендеринга другими приложениями. Кадровый буфер имеет аппаратную поддержку для импорта и рендеринга содержимого буфера без прохождения через графический процессор. [ необходима цитата ]
Использование аппаратного оверлея важно по нескольким причинам: [ необходима ссылка ]
Компьютер рисует на своем дисплее, записывая растровое представление графики в специальную часть своей памяти, известную как видеопамять . Без каких-либо аппаратных наложений существует только один фрагмент видеопамяти, который должны совместно использовать все приложения, и местоположение видеопамяти данного приложения перемещается всякий раз, когда пользователь меняет положение окна приложения. При использовании общей видеопамяти приложение должно постоянно проверять, что оно записывает только в память, которая принадлежит этому приложению.
При запуске видеоприложения с высокой пропускной способностью, такого как видеоплеер или некоторые игры, вычислительная мощность и сложность, необходимые для выполнения постоянного отсечения и проверки, отрицательно влияют на производительность и совместимость. Аппаратное наложение обходит эти ограничения. Кроме того, графический процессор (GPU) обеспечивает эффективный способ масштабирования видео по размеру и часто выполняет преобразования цветовых форматов (например, YCbCr MPEG-2 в RGB).
Приложение, использующее аппаратный оверлей, получает полностью отдельный раздел видеопамяти, который принадлежит только этому приложению. Поскольку ничто другое его не использует, программе никогда не нужно тратить ресурсы на проверку того, принадлежит ли ей данный фрагмент памяти, и ей не нужно следить за тем, перемещает ли пользователь окно и меняет ли местоположение видеопамяти. Чтобы изображение из отдельной видеопамяти отображалось вместе с оставшимися общими элементами на дисплее, графическая подсистема связывает определенный атрибут (например, определенный цвет) в качестве «маски» для этого оверлея, который графическая карта понимает как то, что он должен рисовать из отдельного буфера оверлея на экране. (Эта техника стала известна как « хромакей ».)
В качестве примера предположим, что графическая подсистема определяет цвет «фиолетовый» как цвет маски, который запускает появление наложения. Приложение, воспроизводящее DVD, нарисует сплошной фиолетовый прямоугольник на общем экране, а затем «воспроизведет» DVD в специальную область памяти, выделенную для наложения. Видеокарта будет визуализировать воспроизведение DVD только внутри фиолетовой области. Если другое окно перемещается поверх фиолетовой области и закрывает ее часть, то графическое оборудование выполняет обрезку самостоятельно. На практике фактический цвет «фиолетовый» не используется — вместо этого используется либо невзрачный почти черный цвет (поскольку система часто имеет тысячи таких оттенков на выбор), либо область маски обозначается с помощью некоторого похожего метода маскирования, не включающего цвета.
В результате использования аппаратного оверлея программа для создания снимков экрана (например, автоматически встроенная в Windows, которая активируется при нажатии пользователем клавиши PrtSc) часто не захватывает содержимое, отображаемое в окне аппаратного оверлея. Вместо этого захватывается пустая область, содержащая только специальный цвет маски. Это происходит потому, что процедура захвата экрана не учитывает специальные области видеопамяти, выделенные для оверлеев, — она просто захватывает общий главный экран, отображаемый графической подсистемой программного обеспечения.
Многие новые [обновлять]видеокарты могут поддерживать более одного монитора и/или экрана телевизора в качестве устройств вывода. Обычно одно из этих устройств вывода должно быть объявлено «основным» устройством, и только основное устройство может отображать аппаратные наложения. Есть исключения: Intel пишет в FAQ для своих драйверов встроенной графики, что наложение может быть подключено к любому из дисплеев, но не к обоим (примечание: чипсеты Intel 945, G33-Q965 теперь [обновлять]имеют двойной аппаратный оверлей и способны отображать mpeg2 хорошего качества на дополнительных мониторах при установке соответствующего программного обеспечения), а некоторые новые видеокарты Matrox поддерживают наложение на обоих дисплеях (например, серия Parhelia).
Для дополнительных дисплеев требуется как аппаратная, так и драйверная поддержка; некоторые графические карты могут поддерживать наложение на втором дисплее, в то время как их драйверы могут его еще не поддерживать (примечание: недавние (июль 2008 г.) [обновлять]ошибки драйвера графического чипсета могут привести к тому, что большинство видеоформатов, за исключением mpeg2, будут работать на обоих мониторах, а mpeg2 — только на основном в большинстве проигрывателей).
Некоторые пользователи отмечают, что фильмы DVD отображаются правильно на экране ноутбука, но не отображаются на телевизоре, подключенном к ноутбуку; в этих случаях можно назначить телевизор основным дисплеем. Иногда использование аппаратных наложений может быть отключено в медиаплеере. Однако некоторые графические карты имеют возможность полностью перенаправлять аппаратное наложение на экран телевизора. В этом случае запуск DVD-плеера на главном экране с включенным наложением приведет к отображению видео на подключенном экране телевизора.
Расширенные графические возможности Windows Vista заменяют базовую концепцию аппаратных наложений на полную аппаратную композицию для каждого окна приложения, запущенного в системе, а не только для проигрывателей фильмов или игр, через Desktop Window Manager . Mac OS X использует аппаратную композицию с момента появления Quartz Extreme в Mac OS X 10.2 . Для повышения производительности каждая программа обращается к своему собственному независимому буферу памяти, а не к медленной графической подсистеме. (В Windows Vista каждое аппаратное наложение более правильно называть поверхностью Direct3D). Затем графический процессор системы собирает каждое из окон в один экран дисплея в реальном времени. Благодаря современным графическим процессорам, способным работать с расширенной 3D-графикой (в результате индустрии видеоигр), операционные системы могут применять вычислительно интенсивные эффекты движения, масштабирования и освещения к обычным 2D-окнам.
В связи с необходимостью снижения энергопотребления в Windows 7 была добавлена ограниченная поддержка наложений, [2] [3], а в Windows 8.1 добавлена поддержка многоплоскостных наложений. [4] Многоплоскостные наложения позволяют диспетчеру окон рабочего стола автоматически отображать части рабочего стола в виде наложений, что позволяет экономить электроэнергию в ряде случаев.
В X Window System , оконной системе большинства операционных систем Unix , расширение XVideo позволяет приложениям использовать аппаратные оверлеи. Также используется композитинг, причем наиболее яркими примерами с 2006 года являются композитные оконные менеджеры compiz и Beryl. Они могут использовать OpenGL (через расширение glx) для 3D и 2D визуальных эффектов наложения. Другие реализации, такие как Metacity и xfwm, доступны с 2004 года.
Некоторые специализированные аппаратные оверлейные устройства используют встроенную операционную систему Linux , например, видеорегистратор [1] от Racelogic использует микроконтроллер Texas Instruments DM355 для смешивания кадрового буфера, содержащего графику, с потоком видео в реальном времени, а затем сохраняет результат в формате MPEG-4 на флэш-карте.
Поддержка наложения, также известная как «картинка в картинке» (PIP), была введена в AmigaOS с появлением графических карт для ПК, графических драйверов Picasso96 и CyberGraphX, также известных как ReTargetable Graphics , для карт Picasso IV и Voodoo3 , драйвер picasso'96 стал стандартом в AmigaOS 3.5. Moovid был одним из первых видеоплееров, которые поддерживали аппаратное наложение (PIP) на AmigaOS .