Administración de calidad de vídeo
En este tema se describen algunas mejoras en la canalización de vídeo en Windows 7, tanto para Microsoft Media Foundation como para Microsoft DirectShow.
En un mundo perfecto, el vídeo nunca tendría problemas, independientemente de la resolución de vídeo o la carga de CPU/GPU. En realidad, por supuesto, la canalización de vídeo debe ser capaz de hacer frente a los recursos de hardware finitos, y debe adaptar la reproducción de forma adaptable al entorno del sistema. Los objetivos de la gestión de la calidad del vídeo son:
- Reducir el brillo (marcos caídos o retrasados).
- Reduzca el uso de memoria, especialmente en la GPU.
- Reduzca el consumo de energía, especialmente en equipos portátiles que se ejecutan con batería.
- Obtenga la mejor calidad de imagen posible, dadas restricciones de recursos.
- Mantenga el vídeo sincronizado con el audio.
Algunos de estos objetivos son contrarios, especialmente en los sistemas de gama baja. Por lo general, existe un equilibrio entre la velocidad y la calidad. La glzor es más censurable que las reducciones moderadas en la calidad visual. La importancia relativa del consumo de energía varía con el medio ambiente; en un portátil que se ejecuta en la batería, es muy importante.
En Windows 7, el representador de vídeo mejorado (EVR) tiene una mejor compatibilidad con la administración de calidad de vídeo. Tanto la canalización de Media Foundation como la canalización de DirectShow se han actualizado para aprovechar estas funcionalidades. Se usa un enfoque de dos pronged:
- Antes de que se inicie la reproducción, la canalización puede realizar optimizaciones estáticas, en función de la configuración de administración de energía del usuario e información sobre el hardware.
- Una vez iniciada la reproducción, la canalización puede aplicar optimizaciones dinámicas en función del rendimiento en tiempo de ejecución.
Administración de calidad en Media Foundation
Para habilitar las optimizaciones estáticas, establezca el atributo MF_TOPOLOGY_STATIC_PLAYBACK_OPTIMIZATIONS en la topología parcial antes de resolver la topología. El cargador de topología consulta este atributo en su método IMFTopoLoader::Load .
Si habilita optimizaciones estáticas, debe establecer otros dos atributos en la topología:
Atributo | Descripción |
---|---|
MF_TOPOLOGY_PLAYBACK_MAX_DIMS |
Especifica el tamaño máximo de la ventana de reproducción de vídeo. |
MF_TOPOLOGY_PLAYBACK_FRAMERATE |
Especifica la frecuencia de actualización del monitor. |
Estos dos atributos ayudan a la canalización a calcular la configuración más eficaz para la administración de calidad.
El administrador de calidad realiza optimizaciones dinámicas. No es necesario hacer nada para habilitar el administrador de calidad; se habilita automáticamente. El administrador de calidad existía en Windows Vista; en Windows 7, el EVR puede responder mejor a los mensajes del administrador de calidad.
Administración de calidad en DirectShow
DirectShow admite optimizaciones estáticas y dinámicas para la reproducción de DVD. Para habilitar estas optimizaciones en una aplicación de reproducción de DVD, establezca las marcas siguientes en el parámetro dwFlags del método IDvdGraphBuilder::RenderDvdVideoVolume :
Marca | Descripción |
---|---|
AM_DVD_ADAPT_GRAPH | Habilita optimizaciones estáticas. |
AM_DVD_EVR_QOS | Habilita optimizaciones dinámicas. |
Otras aplicaciones directShow pueden habilitar optimizaciones dinámicas llamando al método IEVRFilterConfigEx::SetConfigPrefs directamente en el filtro EVR. Especifique la marca EVRFilterConfigPrefs_EnableQoS .
Nota
Las optimizaciones estáticas en DirectShow se limitan a la reproducción de DVD.
Gestión de la calidad en el EVR
EvR admite algunas nuevas marcas de configuración para la administración de la calidad. Si habilita las optimizaciones de administración de calidad descritas anteriormente, no es necesario establecer estas marcas directamente. Sin embargo, se documentan para las aplicaciones que desean un control más pormenorizado sobre el EVR.
Establezca las marcas siguientes en el mezclador EVR llamando al método IMFVideoMixerControl2::SetMixingPrefs :
Marcas | Descripción |
---|---|
|
Omita el segundo campo de cada marco entrelazado. |
|
Usa bob desinterlacing, incluso si el controlador admite un modo de desinterlace de mayor calidad. |
Establezca las marcas siguientes en el moderador de EVR llamando al método IMFVideoDisplayControl::SetRenderingPrefs :
Marcas | Descripción |
---|---|
|
Limitar la salida para que coincida con el ancho de banda de GPU. |
|
Llamadas de Direct3D present de Batch. Esta optimización permite al sistema entrar en estados inactivos con más frecuencia, lo que puede reducir el consumo de energía. |
|
Realice la mezcla de vídeo mediante un rectángulo menor que el rectángulo de salida. Escale el resultado al tamaño de salida correcto. |
Además, el receptor de medios EVR admite atributos de configuración que corresponden a cada una de estas marcas:
- EVRConfig_AllowBatching
- EVRConfig_AllowDropToBob
- EVRConfig_AllowDropToHalfInterlace
- EVRConfig_AllowScaling
- EVRConfig_AllowDropToThrottle
- EVRConfig_ForceBatching
- EVRConfig_ForceBob
- EVRConfig_ForceHalfInterlace
- EVRConfig_ForceScaling
- EVRConfig_ForceThrottle
Antes de que se inicie la reproducción, puedes establecer estos atributos directamente en el receptor multimedia EVR, como alternativa a llamar a los métodos IMFVideoMixerControl2 y IMFVideoDisplayControl . Para establecer estos atributos, consulte el receptor de medios EVR para IMFAttributes.
Temas relacionados