stringtranslate.com

Fundación de los medios de comunicación

Media Foundation ( MF ) es una plataforma de infraestructura y canalización de multimedia basada en COM para medios digitales en Windows Vista , Windows 7 , Windows 8 , Windows 8.1 , Windows 10 y Windows 11. Es el reemplazo previsto para Microsoft DirectShow , Windows Media SDK , DirectX Media Objects (DMO) y todas las demás API multimedia denominadas "heredadas", como Audio Compression Manager (ACM) y Video for Windows (VfW) . La tecnología DirectShow existente está destinada a ser reemplazada por Media Foundation paso a paso, comenzando con algunas características. Durante algún tiempo habrá una coexistencia de Media Foundation y DirectShow. Media Foundation no estará disponible para versiones anteriores de Windows, incluido Windows XP .

La primera versión, presente en Windows Vista , se centra en la calidad de reproducción de audio y vídeo, el contenido de alta definición (es decir, HDTV ), la protección de contenidos y un enfoque más unificado para el control de acceso a datos digitales para la gestión de derechos digitales (DRM) y su interoperabilidad. Integra DXVA 2.0 para descargar más del proceso de procesamiento de vídeo al hardware, para un mejor rendimiento. Los vídeos se procesan en el espacio de color en el que fueron codificados y se entregan al hardware, que compone la imagen en su espacio de color nativo. Esto evita las conversiones intermedias del espacio de color para mejorar el rendimiento. MF incluye un nuevo renderizador de vídeo, llamado Enhanced Video Renderer (EVR), que es la siguiente iteración de VMR 7 y 9. EVR tiene un mejor soporte para la sincronización y el tiempo de reproducción. Utiliza el Multimedia Class Scheduler Service (MMCSS), un nuevo servicio que prioriza el procesamiento multimedia en tiempo real, para reservar los recursos necesarios para la reproducción, sin cortes ni fallos.

La segunda versión incluida en Windows 7 introduce soporte ampliado para formatos multimedia y DXVA HD para la aceleración de contenido HD si se utilizan controladores WDDM 1.1. [1]

Arquitectura

Arquitectura de la Fundación de Medios

La arquitectura de MF se divide en la capa de control , la capa central y la capa de plataforma . La capa central encapsula la mayor parte de la funcionalidad de Media Foundation. Consiste en la tubería de Media Foundation, que tiene tres componentes: Media Source , Media Sink y Media Foundation Transforms (MFT). Una fuente de medios es un objeto que actúa como fuente de datos multimedia, ya sea comprimidos o sin comprimir. Puede encapsular varias fuentes de datos, como un archivo, un servidor de red o incluso una videocámara, con funcionalidad específica de la fuente abstraída por una interfaz común . Un objeto de origen puede usar un objeto de resolución de origen que crea una fuente de medios a partir de un URI , un archivo o un flujo de bytes. Se puede agregar soporte para protocolos no estándar creando un solucionador de origen para ellos. Un objeto de origen también puede usar un objeto de secuenciador para usar una secuencia de fuentes (una lista de reproducción ) o para fusionar múltiples fuentes en una única fuente lógica. Un receptor de medios es el receptor de datos multimedia procesados. Un receptor de medios puede ser un receptor de renderizador , que renderiza el contenido en un dispositivo de salida, o un receptor de archivo , que guarda el contenido en un sistema de almacenamiento persistente, como un archivo. Un receptor de renderizador toma datos sin comprimir como entrada, mientras que un receptor de archivo puede tomar datos comprimidos o sin comprimir, según el tipo de salida. Los datos de las fuentes de medios a los receptores son procesados ​​por las MFT; las MFT son ciertas funciones que transforman los datos en otra forma. Las MFT pueden incluir multiplexores y demultiplexores, códecs o efectos DSP como reverberación . La capa central utiliza servicios como acceso a archivos y redes y sincronización de reloj para cronometrar la renderización multimedia. Estos son parte de la capa de Plataforma , que proporciona los servicios necesarios para acceder a los flujos de bytes de origen y destino, relojes de presentación y un modelo de objetos que permite que los componentes de la capa central funcionen de forma asincrónica, y generalmente se implementa como servicios del sistema operativo. La pausa, la detención, el avance rápido, la reversión o la compresión de tiempo se pueden lograr controlando el reloj de presentación.

Sin embargo, los componentes de la tubería de medios no están conectados, sino que se presentan simplemente como componentes discretos. Una aplicación que se ejecuta en la capa de Control tiene que elegir qué tipos de fuentes, transformaciones y receptores son necesarios para la tarea de procesamiento de vídeo en particular en cuestión, y configurar las "conexiones" entre los componentes (una topología ) para completar la tubería de flujo de datos. Por ejemplo, para reproducir un archivo de audio/vídeo comprimido, la tubería constará de un objeto de fuente de archivo, un demultiplexor para el formato de contenedor de archivo específico para dividir los flujos de audio y vídeo, códecs para descomprimir los flujos de audio y vídeo, procesadores DSP para efectos de audio y vídeo y, finalmente, el renderizador EVR, en secuencia. O para una aplicación de captura de vídeo, la videocámara actuará como fuentes de vídeo y audio, en las que trabajarán los MFT de códec para comprimir los datos y alimentarlos a un multiplexor que fusiona los flujos en un contenedor; y, finalmente, un receptor de archivos o un receptor de red los escribirá en un archivo o flujo a través de una red. La aplicación también tiene que coordinar el flujo de datos entre los componentes de la tubería. La capa de control tiene que "extraer" (solicitar) muestras de un componente de la canalización y pasarlas al siguiente componente para lograr el flujo de datos dentro de la canalización. Esto contrasta con el modelo "push" de DirectShow , en el que un componente de la canalización envía datos al siguiente componente. Media Foundation permite la protección de contenido al alojar la canalización dentro de un entorno de ejecución protegido, llamado Ruta de medios protegida . Los componentes de la capa de control deben propagar los datos a través de la canalización a una velocidad que la representación se sincronice con el reloj de presentación. La velocidad (o tiempo) de representación se integra como parte de la transmisión multimedia como metadatos. Los objetos de origen extraen los metadatos y los pasan. Los metadatos son de dos tipos: metadatos codificados , que son información sobre la velocidad de bits y los tiempos de presentación, y metadatos descriptivos , como el título y los nombres de los autores. Los metadatos codificados se entregan al objeto que controla la sesión de la canalización y los metadatos descriptivos se exponen para que la aplicación los use si así lo desea.

Media Foundation proporciona un objeto de sesión de medios que se puede utilizar para configurar las topologías y facilitar un flujo de datos sin que la aplicación lo haga explícitamente. Existe en la capa de control y expone un objeto de cargador de topología . La aplicación especifica la topología de canalización requerida al cargador, que luego crea las conexiones necesarias entre los componentes. El objeto de sesión de medios administra la tarea de sincronización con el reloj de presentación. Crea el objeto de reloj de presentación y pasa una referencia a él al receptor. Luego usa los eventos del temporizador del reloj para propagar datos a lo largo de la canalización. También cambia el estado del reloj para manejar las solicitudes de pausa, detención o reanudación de la aplicación.

Arquitecturas MF prácticas

En teoría, solo existe una arquitectura de Media Foundation, que es el modelo Media Session, Pipeline, Media Source, Transform y Media Sink. Sin embargo, esta arquitectura puede ser compleja de configurar y existe un margen considerable para componentes MF livianos y relativamente fáciles de configurar diseñados para manejar el procesamiento de datos de medios para soluciones puntuales simples. Por lo tanto, las consideraciones prácticas exigieron la implementación de variaciones en el diseño fundamental de Pipeline y se desarrollaron componentes como Source Reader y Sink Writer que operan fuera del modelo de Pipeline. Algunas fuentes [2] dividen la arquitectura de Media Foundation en tres clases generales.

La arquitectura de canalización se distingue por el uso de un objeto de sesión de medios y una canalización distintos. Los datos de medios fluyen desde una o más fuentes de medios a uno o más receptores de medios y, opcionalmente, a través de cero o más transformaciones de medios. Es la sesión de medios la que administra el flujo de los datos de medios a través de la canalización y esa canalización puede tener múltiples bifurcaciones y ramificaciones. Una aplicación MF puede obtener acceso a los datos de medios a medida que pasan de una fuente de medios a un receptor de medios implementando un componente de transformación de medios personalizado e insertándolo en una ubicación adecuada en la canalización.

La arquitectura de lector-escritor utiliza un componente llamado lector de origen para proporcionar los datos multimedia y un componente escritor receptor para consumirlos. El lector de origen contiene un tipo de canal interno, pero no es accesible para la aplicación. Un lector de origen no es una fuente multimedia y un escritor receptor no es un receptor multimedia y ninguno de ellos puede incluirse directamente en un canal ni administrarse mediante una sesión multimedia. En general, los datos multimedia fluyen desde el lector de origen al escritor receptor mediante las acciones de la aplicación. La aplicación tomará los paquetes de datos multimedia (llamados muestras multimedia) del lector de origen y se los entregará directamente al escritor receptor o configurará una función de devolución de llamada en el lector de origen que realiza la misma operación. En efecto, al administrar el transporte de datos, la propia aplicación desempeña un papel similar al de la sesión multimedia en una aplicación de arquitectura de canalización. Dado que la aplicación MF administra la transmisión de las muestras multimedia entre el lector de origen y el escritor receptor, siempre tendrá acceso a los datos multimedia sin procesar. Los componentes Source Reader y Sink Writer tienen una capacidad limitada para cargar automáticamente transformaciones de medios para ayudar con la conversión del formato de los datos de medios; sin embargo, esto se hace internamente y la aplicación tiene poco control sobre ello.

El lector de origen y el escritor receptor proporcionan facilidad de uso y la arquitectura de canalización ofrece un control extremadamente sofisticado sobre el flujo de los datos de medios. Sin embargo, muchos de los componentes disponibles para una canalización (como el renderizador de video mejorado) simplemente no se pueden usar fácilmente en una aplicación de arquitectura de lector-escritor. Dado que la estructura de una muestra de medios producida por un lector de origen es idéntica a la salida de una fuente de medios, es posible configurar una arquitectura de canalización en la que las muestras de medios se interceptan a medida que pasan por la canalización y se entrega una copia a un receptor de medios. Esto se conoce como una arquitectura híbrida y hace posible tener una aplicación que aprovecha las sofisticadas capacidades de procesamiento de la sesión de medios y la canalización mientras utiliza la facilidad de uso de un escritor receptor. El escritor receptor no es parte de la canalización y no interactúa con la sesión de medios. En efecto, los datos de medios son procesados ​​por un receptor de medios especial llamado receptor de captura de muestras que consume los datos de medios y entrega una copia al escritor receptor mientras lo hace. También es posible implementar una arquitectura híbrida con una transformación de medios personalizada que copia las muestras de medios y las pasa a un receptor de escritura a medida que pasan por la tubería. En ambos casos, un componente especial en la tubería actúa efectivamente como una aplicación de lectura-escritura simple y alimenta a un receptor de escritura. En general, las arquitecturas híbridas utilizan una tubería y un receptor de escritura. Teóricamente, es posible implementar un mecanismo en el que un lector de origen podría de alguna manera inyectar muestras de medios en una tubería, pero, a diferencia del receptor de captura de muestras, no existe un componente estándar de este tipo.

Fundación de Medios Transformar

Las transformaciones de Media Foundation (MFT) representan un modelo genérico para procesar datos multimedia. Se utilizan en Media Foundation principalmente para implementar decodificadores, codificadores, mezcladores y procesadores de señales digitales (DSP), entre fuentes multimedia y receptores multimedia . Las transformaciones de Media Foundation son una evolución del modelo de transformación introducido por primera vez con los objetos multimedia DirectX (DMO). Sus comportamientos están especificados con mayor claridad. También se pueden crear objetos híbridos DMO/MFT. Las aplicaciones pueden utilizar MFT dentro de la canalización de Media Foundation o utilizarlas directamente como objetos independientes. Las MFT pueden ser de cualquiera de los siguientes tipos:

Microsoft recomienda a los desarrolladores que escriban un filtro Media Foundation Transform en lugar de un filtro DirectShow para Windows Vista , Windows 7 y Windows 8. [ 3] Para la edición y captura de vídeo, Microsoft recomienda utilizar DirectShow, ya que no son el objetivo principal de Media Foundation en Windows Vista. A partir de Windows 7, las MFT también admiten el procesamiento, la codificación y la decodificación de vídeo acelerados por hardware para dispositivos multimedia basados ​​en AVStream. [4]

Renderizador de vídeo mejorado

Media Foundation utiliza el Enhanced Video Renderer (EVR) para renderizar contenido de vídeo, que también actúa como mezclador. Puede mezclar hasta 16 secuencias simultáneas, siendo la primera secuencia una secuencia de referencia . Todas las secuencias, excepto la secuencia de referencia, pueden tener información de transparencia por píxel , así como cualquier orden z especificado . La secuencia de referencia no puede tener píxeles transparentes y tiene una posición de orden z fija, en la parte posterior de todas las secuencias. La imagen final se compone en una única superficie coloreando cada píxel según el color y la transparencia del píxel correspondiente en todas las secuencias.

Internamente, el EVR utiliza un objeto mezclador para mezclar las transmisiones. También puede desentrelazar la salida y aplicar corrección de color, si es necesario. El fotograma compuesto se entrega a un objeto presentador , que lo programa para renderizarlo en un dispositivo Direct3D, que comparte con el DWM y otras aplicaciones que utilizan el dispositivo. La velocidad de fotogramas del vídeo de salida se sincroniza con la velocidad de fotogramas de la transmisión de referencia. Si alguna de las otras transmisiones (denominadas subtransmisiones ) tiene una velocidad de fotogramas diferente, el EVR descarta los fotogramas adicionales (si la subtransmisión tiene una velocidad de fotogramas más alta) o utiliza el mismo fotograma más de una vez (si tiene una velocidad de fotogramas más baja).

Formatos de medios admitidos

Windows Media Audio y Windows Media Video son los únicos formatos compatibles de forma predeterminada para la codificación a través de Media Foundation en Windows Vista . Para la decodificación, hay disponible una fuente de archivo MP3 en Windows Vista para leer secuencias MP3, pero un receptor de archivos MP3 para generar MP3 solo está disponible en Windows 7. [5] Sin embargo, la compatibilidad de formatos es extensible; los desarrolladores pueden agregar compatibilidad con otros formatos escribiendo MFT de codificador/descodificador y/o fuentes/receptores de medios personalizados.

Windows 7 amplía la compatibilidad de códecs disponible en Windows Vista. Incluye fuentes de archivos AVI , WAV , AAC/ADTS para leer los formatos respectivos, [5] una fuente de archivos MPEG-4 para leer formatos contenedores MP4 , M4A, M4V, MP4V, MOV y 3GP [6] y un receptor de archivos MPEG-4 para generar archivos en formato MP4. [7]

Al igual que en Windows Vista, la compatibilidad con la transcodificación (codificación) no se expone a través de ninguna aplicación integrada de Windows, pero se incluyen varios códecs como Media Foundation Transforms (MFT). [5] Además de los codificadores y decodificadores de Windows Media Audio y Windows Media Video , y el receptor de archivos ASF y la fuente de archivos introducidos en Windows Vista, [5] Windows 7 incluye un codificador H.264 con soporte para perfil Baseline nivel 3 y perfil principal [8] y un codificador de perfil AAC de baja complejidad ( AAC-LC ) [9].

Para la reproducción de varios formatos multimedia, Windows 7 también introduce un decodificador H.264 con soporte Baseline, Main y High-profile, hasta el nivel 5.1, [10] decodificadores multicanal AAC-LC y HE-AAC v1 ( SBR ), decodificadores estéreo HE-AAC v2 ( PS ), [11] decodificadores MPEG-4 Part 2 Simple Profile y Advanced Simple Profile [12] que incluyen la decodificación de implementaciones de códecs populares como DivX , Xvid y Nero Digital , así como decodificadores MJPEG [5] y DV [13] MFT para AVI. Windows Media Player 12 utiliza los códecs Media Foundation integrados para reproducir estos formatos de forma predeterminada.

La reproducción MIDI tampoco es compatible aún con Media Foundation.

Soporte de aplicaciones

Las aplicaciones que apoyan a Media Foundation incluyen:

Cualquier aplicación que utilice Ruta de medios protegida en Windows también utiliza Media Foundation.

Referencias

  1. ^ "DXVA-HD". Archivado desde el original el 20 de abril de 2012. Consultado el 18 de abril de 2010 .
  2. ^ "Fuente de ejemplo". GitHub . Archivado desde el original el 23 de noviembre de 2020 . Consultado el 19 de enero de 2019 .
  3. ^ "Migración de DirectShow a Media Foundation y comparación de ambos". Archivado desde el original el 9 de abril de 2008. Consultado el 22 de febrero de 2007 .
  4. ^ Introducción a la compatibilidad de códecs de hardware en AVStream
  5. ^ abcde "Formatos multimedia admitidos en Media Foundation". Archivado desde el original el 29 de abril de 2010. Consultado el 18 de abril de 2010 .
  6. ^ "Fuente de archivo MPEG-4". Archivado desde el original el 14 de marzo de 2010. Consultado el 18 de abril de 2010 .
  7. ^ "MPEG-4 File Sink". Archivado desde el original el 4 de agosto de 2010. Consultado el 18 de abril de 2010 .
  8. ^ "Codificador de vídeo H.264". Archivado desde el original el 4 de marzo de 2010. Consultado el 18 de abril de 2010 .
  9. ^ "Codificador AAC". Archivado desde el original el 13 de octubre de 2009. Consultado el 18 de abril de 2010 .
  10. ^ "Descodificador de vídeo H.264". Archivado desde el original el 21 de abril de 2010. Consultado el 18 de abril de 2010 .
  11. ^ "Descodificador AAC". Archivado desde el original el 18 de marzo de 2010. Consultado el 18 de abril de 2010 .
  12. ^ "Descodificador de vídeo MPEG4 Parte 2". Archivado desde el original el 11 de febrero de 2010. Consultado el 18 de abril de 2010 .
  13. ^ "Descodificador de vídeo DV". Archivado desde el original el 29 de marzo de 2010. Consultado el 18 de abril de 2010 .

Enlaces externos