En informática , la superposición de hardware , un tipo de superposición de vídeo , proporciona un método para reproducir una imagen en una pantalla con un búfer de memoria dedicado dentro del hardware de vídeo de la computadora. La técnica tiene como objetivo mejorar la visualización de una imagen de vídeo de rápido movimiento , como un juego de ordenador , un DVD o la señal de una tarjeta de TV . La mayoría de las tarjetas de vídeo fabricadas desde aproximadamente 1998 y la mayoría de los reproductores multimedia admiten la superposición de hardware. [1]
La superposición es un búfer dedicado en el que una aplicación puede renderizar (normalmente, vídeo) sin incurrir en el importante coste de rendimiento que supone comprobar si hay recortes y superposiciones en la renderización por parte de otras aplicaciones. El búfer de fotogramas tiene soporte de hardware para importar y renderizar el contenido del búfer sin pasar por la GPU. [ cita requerida ]
El uso de una superposición de hardware es importante por varias razones: [ cita requerida ]
Una computadora dibuja en su pantalla escribiendo una representación en mapa de bits de los gráficos en una porción especial de su memoria conocida como memoria de video . Sin ninguna superposición de hardware, solo existe un fragmento de memoria de video que todas las aplicaciones deben compartir, y la ubicación de la memoria de video de una aplicación determinada se mueve siempre que el usuario cambia la posición de la ventana de la aplicación. Con la memoria de video compartida, una aplicación debe verificar constantemente que solo está escribiendo en la memoria que pertenece a esa aplicación.
Al ejecutar una aplicación de video que requiere un gran ancho de banda, como un reproductor de películas o algunos juegos, la potencia de procesamiento y la complejidad necesarias para realizar cortes y comprobaciones constantes afectan negativamente el rendimiento y la compatibilidad. Una superposición de hardware evita estas limitaciones. Además, la unidad de procesamiento gráfico (GPU) proporciona una forma eficiente de escalar el tamaño del video y, a menudo, realiza conversiones de formato de color (como YCbCr de MPEG-2 a RGB).
Una aplicación que utiliza una superposición de hardware obtiene una sección completamente separada de la memoria de vídeo que pertenece únicamente a esa aplicación. Como nadie más la utiliza, el programa nunca necesita desperdiciar recursos en verificar si una determinada parte de la memoria le pertenece, ni tampoco necesita monitorear si el usuario mueve la ventana y cambia la ubicación de la memoria de vídeo. Para obtener la imagen de la memoria de vídeo separada para mostrarla en tándem con los elementos compartidos restantes en la pantalla, el subsistema gráfico asocia un determinado atributo (por ejemplo, un color particular) como una "máscara" para esa superposición, que la tarjeta gráfica entiende como que debe dibujar desde el búfer de superposición independiente en la pantalla. (Esta técnica se conoce como " croma key ").
Como ejemplo, supongamos que el subsistema gráfico define el color "púrpura" como el color de máscara que activa la superposición. Una aplicación que reproduce un DVD dibujará un rectángulo morado sólido en la pantalla compartida y luego "reproducirá" el DVD en la región especial de memoria dedicada a la superposición. La tarjeta gráfica reproducirá el DVD solo dentro del área morada. Si otra ventana se mueve sobre el área morada y oscurece una parte de ella, entonces el hardware gráfico realiza el recorte por sí mismo. En la práctica, el color "púrpura" real no se utiliza; en su lugar, se utiliza un color anodino casi negro (ya que el sistema a menudo tiene miles de esos tonos para elegir), o la región de máscara se denota utilizando algún método de enmascaramiento similar que no involucra colores.
Como consecuencia del uso de superposiciones de hardware, un programa de captura de pantalla (por ejemplo, el que se integra automáticamente en Windows y se activa cuando un usuario presiona la tecla PrtSc) a menudo no captura el contenido que aparece en la ventana de superposición de hardware. En cambio, se captura una región en blanco que contiene solo el color de máscara especial. Esto se debe a que la rutina de captura de pantalla no considera las regiones de memoria de video especiales dedicadas a las superposiciones; simplemente captura la pantalla principal compartida tal como la representa el subsistema gráfico del software.
Muchas [actualizar]tarjetas gráficas más nuevas pueden admitir más de un monitor y/o una pantalla de TV como dispositivos de salida. Normalmente, uno de estos dispositivos de salida debe declararse como el dispositivo "principal", y solo el dispositivo principal puede mostrar superposiciones de hardware. Hay excepciones: Intel escribe en las preguntas frecuentes de sus controladores de gráficos integrados que la superposición se puede conectar a cualquiera de las pantallas, pero no a ambas (nota: los chipsets Intel 945, G33-Q965 ahora [actualizar]tienen superposición de hardware dual y son capaces de reproducir mpeg2 de buena calidad en monitores secundarios cuando se instala el software adecuado), y algunas tarjetas gráficas Matrox más nuevas admiten la superposición en ambas pantallas (por ejemplo, la serie Parhelia).
Las pantallas secundarias requieren soporte tanto de hardware como de controlador; algunas tarjetas gráficas pueden soportar superposición en la segunda pantalla mientras que sus controladores aún no la soportan (nota: [actualizar]errores recientes (julio de 2008) en los controladores del chipset gráfico pueden causar que la mayoría de los formatos de video, excepto mpeg2, funcionen en ambos monitores, y mpeg2 solo en el principal con la mayoría de los reproductores).
Algunos usuarios notan que las películas en DVD se ven correctamente en la pantalla de una computadora portátil, pero no en un televisor conectado a la computadora portátil; en estos casos, es posible designar el televisor como pantalla principal. A veces, es posible que se deba deshabilitar el uso de superposiciones de hardware en el reproductor multimedia. Sin embargo, algunas tarjetas gráficas tienen la opción de redirigir completamente la superposición de hardware a la pantalla del televisor. En este caso, iniciar un reproductor de DVD en la pantalla principal con la superposición habilitada haría que el video se muestre en la pantalla del televisor conectado.
Las capacidades gráficas mejoradas de Windows Vista reemplazan el concepto básico de superposiciones de hardware con composición de hardware completa para cada ventana de aplicación que se ejecuta en el sistema, no solo reproductores de películas o juegos, a través del Administrador de ventanas del escritorio . Mac OS X ha utilizado la composición de hardware desde la introducción de Quartz Extreme en Mac OS X 10.2 . Para mejorar el rendimiento, cada programa dibuja en su propio búfer de memoria independiente en lugar de en un subsistema gráfico lento. (En Windows Vista, cada superposición de hardware se conoce más correctamente como una superficie Direct3D). Luego, la GPU del sistema ensambla cada una de las ventanas en una sola pantalla de visualización en tiempo real. Con las GPU modernas capaces de gráficos 3D avanzados (como consecuencia de la industria de los videojuegos), los sistemas operativos pueden aplicar movimiento, escala y efectos de iluminación que requieren un uso intensivo de recursos computacionales a ventanas 2D normales.
Debido a la necesidad de reducir el consumo de energía, Windows 7 volvió a agregar soporte limitado para superposiciones, [2] [3] y Windows 8.1 agregó soporte para superposiciones de múltiples planos. [4] Las superposiciones de múltiples planos permiten que el Administrador de ventanas del escritorio represente automáticamente partes del escritorio en superposiciones, ahorrando energía en más circunstancias.
En el sistema X Window , el sistema de ventanas de la mayoría de los sistemas operativos Unix , la extensión XVideo permite que las aplicaciones empleen superposiciones de hardware. También se utiliza la composición, siendo los gestores de ventanas de composición Compiz y Beryl los ejemplos más destacados desde 2006. Pueden aprovechar OpenGL (a través de la extensión glx) para efectos visuales de superposición 3D y 2D. Otras implementaciones como Metacity y xfwm están disponibles desde 2004.
Algunos dispositivos de superposición de hardware dedicados utilizan Linux integrado como sistema operativo, por ejemplo, el registrador de video [1] de Racelogic utiliza un microcontrolador DM355 de Texas Instruments para combinar un búfer de cuadros que contiene gráficos en una transmisión de video en vivo y luego almacenar el resultado en formato MPEG-4 en una tarjeta flash.
La compatibilidad con superposición, también conocida como Picture In Picture (PIP), se introdujo en AmigaOS con la introducción de las tarjetas gráficas para PC, Picasso96 y los sistemas de controladores gráficos CyberGraphX, también conocidos como ReTargetable Graphics . Para las tarjetas Picasso IV y Voodoo3 , el sistema de controladores Picasso'96 se convirtió en estándar en AmigaOS 3.5. Moovid fue uno de los primeros reproductores de video que admitieron superposición de hardware (PIP) en AmigaOS .