stringtranslate.com

Extensión de vídeo X

La extensión de vídeo X , a menudo abreviada como XVideo o Xv , es un mecanismo de salida de vídeo para el sistema X Window . El protocolo fue diseñado por David Carver; la especificación para la versión 2 del protocolo se escribió en julio de 1991. [1] Hoy en día se utiliza principalmente para cambiar el tamaño del contenido de vídeo en el hardware del controlador de vídeo para ampliar un vídeo determinado o verlo en modo de pantalla completa. Sin XVideo, X tendría que hacer este escalado en la CPU principal. Eso requiere una cantidad considerable de potencia de procesamiento, lo que podría ralentizar o degradar el flujo de vídeo; los controladores de vídeo están diseñados específicamente para este tipo de cálculo, por lo que pueden hacerlo de forma mucho más económica. De forma similar, la extensión de vídeo X puede hacer que el controlador de vídeo realice conversiones de espacio de color y cambie el contraste, el brillo y el tono de un flujo de vídeo mostrado.

Para que esto funcione, deben coincidir tres cosas:

La mayoría de los controladores de vídeo modernos proporcionan las funciones necesarias para XVideo; esta característica se conoce como escalado de hardware y aceleración YUV o, a veces, como aceleración de hardware 2D . El servidor de visualización X XFree86 ha implementado XVideo desde la versión 4.0.2. Para comprobar si un servidor de visualización X determinado admite XVideo, se puede utilizar la utilidad xdpyinfo. Para comprobar si el controlador de vídeo proporciona las funciones necesarias y si el controlador del dispositivo X implementa XVideo para alguna de ellas, se puede utilizar el xvinfoprograma.

Los programas de reproducción de vídeo que funcionan con el sistema X Window, como MPlayer , MythTV o xine , suelen tener una opción para habilitar la salida XVideo. Es muy recomendable activar esta opción si el hardware de vídeo de la GPU del sistema y los controladores de dispositivo son compatibles con XVideo y no están disponibles sistemas de renderización más modernos como OpenGL y VDPAU: la aceleración es muy notable incluso en una CPU rápida .

Si bien el protocolo en sí tiene funciones para leer y escribir secuencias de vídeo desde y hacia adaptadores de vídeo, en la práctica hoy en día solo se utilizan las funciones XvPutImagey XvShmPutImage: el programa cliente prepara repetidamente las imágenes y las pasa al hardware gráfico para escalarlas, convertirlas y mostrarlas.

Mostrar

Una vez que el video se ha escalado y preparado para su visualización en la tarjeta de video, es necesario visualizarlo. Existen algunas formas posibles de visualizar un video acelerado en esta etapa. Dado que la aceleración total significa que el controlador de video es responsable de escalar, convertir y dibujar el video, la técnica utilizada depende completamente de sobre qué se esté dibujando el video.

El papel del soporte y la composición del gestor de ventanas

En X, la forma en que se dibuja finalmente el vídeo depende en gran medida del gestor de ventanas X que se utilice. Con los controladores instalados correctamente y el hardware de la GPU , como los conjuntos de chips Intel , ATI y nVidia compatibles , algunos gestores de ventanas , denominados gestores de ventanas de composición , permiten procesar las ventanas por separado y, a continuación, renderizarlas (o componerlas). Esto implica que todas las ventanas se renderizan primero en búferes de salida separados en la memoria y, a continuación, se combinan para formar una interfaz gráfica completa. Mientras están en la memoria (de vídeo), las ventanas individuales se pueden transformar por separado y se puede añadir vídeo acelerado en esta fase utilizando un filtro de textura, antes de componer y dibujar la ventana. XVideo también se puede utilizar para acelerar la reproducción de vídeo durante el dibujo de ventanas utilizando un objeto de búfer de fotogramas OpenGL o pbuffer.

Metacity , un gestor de ventanas X, utiliza la composición de esta manera. La composición también puede hacer uso de aceleraciones de canales 3D como GLX_EXT_texture_from_pixmap. Entre otras cosas, este proceso permite que muchas salidas de vídeo compartan la misma pantalla sin interferir entre sí. Otros gestores de ventanas de composición como Compiz también utilizan la composición.

Sin embargo, en un sistema con una función de aceleración OpenGL limitada, específicamente la falta de un objeto Framebuffer OpenGL o pbuffer , el uso de un entorno OpenGL como Xgl hace imposibles las aceleraciones de hardware.

Las desventajas del croma keying

En el caso de que el administrador de ventanas no admita directamente la composición, es más difícil aislar dónde se debe renderizar el flujo de video, porque para cuando se puede acelerar, la salida ya se ha convertido en una sola imagen. La única forma de hacer esto es, por lo general, emplear una superposición de hardware posprocesada , utilizando incrustación de croma . Una vez que ya se han dibujado todas las ventanas, los únicos datos que tenemos disponibles son el tamaño y la posición del lienzo de la ventana de video. Se requiere un tercer dato para indicar qué partes del lienzo de la ventana de video están oscurecidas por otras ventanas y cuáles no. Por lo tanto, el reproductor de video dibuja su lienzo utilizando un color sólido (diremos verde), y este color se convierte en una tercera dimensión improvisada. Cuando se han dibujado todas las ventanas, las ventanas que cubren el reproductor de video bloquearán el color verde. Cuando se agrega el flujo de video a la salida, la tarjeta gráfica puede simplemente escanear las coordenadas del lienzo. Cuando encuentra verde, sabe que ha encontrado una parte visible de la ventana de video y solo dibuja esas partes del video. Este mismo proceso también era la única opción disponible para renderizar vídeo acelerado por hardware en Microsoft Windows XP y versiones anteriores, ya que sus funciones de gestión de ventanas estaban tan profundamente integradas en el sistema operativo que acelerarlas habría sido imposible.

Si el administrador de ventanas no admite la composición, las superposiciones de hardware posprocesadas mediante incrustación cromática como se describe en el párrafo anterior pueden hacer que sea imposible producir capturas de pantalla adecuadas de las aplicaciones Xvideo. También puede hacer que sea imposible ver este tipo de reproducción en una pantalla secundaria cuando solo se permite una superposición a nivel de hardware.

Véase también

Referencias

  1. ^ Especificación oficial de XVideo, versión 2.0

Enlaces externos

Programas de ejemplo