Интернет магазин китайских планшетных компьютеров



Компьютеры - Расширение X video - Воспроизведение и обработка

11 мая 2011


Оглавление:
1. Расширение X video
2. Воспроизведение и обработка
3. Проблемы с новыми видеокартами



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

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

Отображение

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

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

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

Оконный менеджер Metacity реализует этот способ. Смешение реализуется с использованием функции аппаратного ускорения 3D графики, например GLX_EXT_texture_from_pixmap. Кроме всего прочего, это позволяет независимо друг от друга выводить на один экран несколько потоков видео. Другие композитные менеджеры Beryl, Compiz и Compiz Fusion поступают аналогичным образом. Compiz Fusion включён в Ubuntu Linux 7.10 и более поздние версии. Он автоматически активируется, если система обнаруживает поддерживающее его оборудование.

Тем не менее, на компьютерах с ограниченной аппаратной поддержкой OpenGL, с отсутствующей поддержкой Framebuffer Object или pbuffer, как на системах использующих XGL, расширение Xv будет недоступно.

Проблемы с цветовым ключом

Причина, по которой оконные менеджеры не поддерживают смешение непосредственно, связана с тем, что очень трудно определить куда необходимо выводить видео поток, поскольку за время ускорения, содержимое экрана превращается в единое изображение. Единственным способом обеспечить вывод видео становится использование аппаратного оверлея с применением цветового ключа. После того, как все окна нарисованы, единственная доступная информация об окнах — это их размеры и координаты. Но для отображения видео так же необходима информация о том, как и какие окна друг друга перекрывают. Для этого программы, воспроизводящие видео, закрашивают область вывода сплошным цветом. Затем, когда все окна выведены, перекрывающие окна могут закрыть часть окна проигрывателя видео, но видеокарте будет достаточно лишь просканировать определённые координаты экрана и если там находятся точки зелёного цвета, то в этом месте необходимо отобразить видео поток. Аналогичный способ использовался для вывода видео с аппаратным ускорением в операционной системе Microsoft Windows XP, потому что её оконный менеджер был столь сильно интегрирован с операционной системой, что ускорить его самого не представлялось возможным.

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



Просмотров: 2521


<<< Интерфейс транспортного уровня
Сокеты Беркли >>>