Расширение видео X

редактировать
механизм вывода видео для X Window System
Расширение X video
Автор (ы) исходного текста X.Org Foundation
Стабильный выпуск 2.0 / 25 июля 1991 г.; 29 лет назад (1991-07-25)

Расширение видео X, часто сокращенно XVideo или Xv, представляет собой механизм вывода видео для X Window System. Протокол был разработан Дэвидом Карвером; спецификация для версии 2 протокола была написана в июле 1991 года. Сегодня он в основном используется для изменения размера видеоконтента в аппаратных средствах видеоконтроллера, чтобы увеличить данное видео или просмотреть его в полноэкранном режиме. Без XVideo X пришлось бы выполнять это масштабирование на основном процессоре. Это требует значительной вычислительной мощности, которая может замедлить или ухудшить видеопоток; видеоконтроллеры специально разработаны для такого рода вычислений, поэтому могут делать это гораздо дешевле. Точно так же расширение X video может заставить видеоконтроллер выполнять преобразования цветового пространства и изменять контраст, яркость и оттенок отображаемого видеопотока.

Для того, чтобы это работало, необходимо объединить три вещи:

  • Видеоконтроллер должен обеспечивать необходимые функции.
  • Программное обеспечение драйвера устройства для видеоконтроллер и программа сервера отображения X должны реализовывать интерфейс XVideo.
  • Программное обеспечение для воспроизведения видео должно использовать этот интерфейс.

Большинство современных видеоконтроллеров предоставляют функции требуется для XVideo; эта функция известна как аппаратное масштабирование и ускорение YUV или иногда как аппаратное ускорение 2D. Сервер отображения XFree86 X использует XVideo, начиная с версии 4.0.2. Чтобы проверить, поддерживает ли данный сервер X Display XVideo, можно использовать утилиту xdpyinfo. Чтобы проверить, предоставляет ли видеоконтроллер необходимые функции и реализует ли драйвер устройства X XVideo для какой-либо из них, можно использовать программу xvinfo.

Программы воспроизведения видео, работающие в системе X Window, такие как MPlayer, MythTV или xine, обычно имеют возможность включить XVideo выход. Рекомендуется включать эту опцию, если система GPU видеооборудование и драйверы устройств поддерживают XVideo, а более современные системы рендеринга, такие как OpenGL и VDPAU, недоступны - ускорение очень заметно даже на быстром CPU.

Хотя сам протокол имеет функции для чтения и записи видеопотоков с и на видеоадаптеры, на практике сегодня используются только функции XvPutImageи XvShmPutImage: Клиентская программа постоянно подготавливает изображения и передает их графическому оборудованию для масштабирования, преобразования и отображения.

Содержание

  • 1 Дисплей
    • 1.1 Роль поддержки и компоновки оконного менеджера
    • 1.2 Недостатки цветного ключа
  • 2 См. Также
  • 3 Ссылки
  • 4 Внешние ссылки
    • 4.1 Примеры программ

Отображение

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

Роль поддержки и компоновки оконного менеджера

В X, то, как окончательно отрисовывается видео, во многом зависит от используемого X оконного менеджера. При правильно установленных драйверах и оборудовании GPU, таком как поддерживаемые наборы микросхем Intel, ATI и nVidia, некоторые оконные менеджеры, называемый составными оконными менеджерами, позволяет отдельно обрабатывать окна и затем визуализировать (или компоновать). Это подразумевает, что все окна сначала отображаются в отдельные буферы вывода в памяти, а затем объединяются в законченный графический интерфейс. Находясь в (видео) памяти, отдельные окна могут быть преобразованы отдельно, и ускоренное видео может быть добавлено на этом этапе с использованием фильтра текстуры до того, как окно будет составлено и отрисовано. XVideo также можно использовать для ускорения воспроизведения видео во время рисования окон с помощью OpenGL Framebuffer Object или pbuffer.

Metacity, менеджер окон X использует композицию таким образом. Компоновка также может использовать ускорения 3D-конвейеров, такие как GLX_EXT_texture_from_pixmap. Помимо прочего, этот процесс позволяет множеству видеовыходов использовать один и тот же экран, не мешая друг другу. Другие оконные менеджеры композитинга, такие как Compiz, также используют композитинг.

Однако в системе с ограниченной функцией ускорения OpenGL, в частности отсутствием OpenGL Framebuffer Object или pbuffer, использование среды OpenGL, например Xgl делает невозможным аппаратное ускорение xv.

Недостатки цветного кеинга

В том случае, если оконный менеджер не поддерживает композитинг напрямую, труднее определить, где должен отображаться видеопоток, потому что к тому времени он можно ускорить вывод уже преобразован в единое изображение. Единственный способ сделать это, как правило, - использовать аппаратный оверлей с постобработкой с использованием кодирования цветности. После того, как все окна уже нарисованы, единственная доступная информация - это размер и положение холста видеоокна. Третья часть информации требуется, чтобы указать, какие части холста видеоокна закрыты другими окнами, а какие нет. Таким образом, видеоплеер рисует свой холст сплошным цветом (назовем его зеленым), и этот цвет становится временным третьим измерением. Когда все окна нарисованы, окна, закрывающие видеоплеер, будут блокировать зеленый цвет. Когда видеопоток добавляется к выходу, видеокарта может просто сканировать координаты холста. Когда он встречает зеленый цвет, он знает, что обнаружил видимую часть видеоокна, и рисует только эти части видео. Этот же процесс был также единственным доступным вариантом для рендеринга видео с аппаратным ускорением в Microsoft Windows XP и ранее, поскольку его функции управления окнами были настолько глубоко встроены в операционную систему, что их ускорение могло бы было невозможно.

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

См. Также

Ссылки

Внешние ссылки

Примеры программ

  • testxv.c : на большинстве установок он компилируется с помощью «gcc -o testxv testxv.c -L / usr / X11R6 / lib -lX11 -lXext - lXv"
  • testxv2.cc : другой пример на C ++
Последняя правка сделана 2021-06-22 06:57:49
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте