Introducción a la ventana digital

Dos nuevos controles de ventana digital proporcionan un mecanismo para el movimiento panorámico digital, inclinación y zoom para las cámaras que ofrecen sensores nativos de alta resolución, de modo que una aplicación pueda centrarse de forma selectiva en objetos como caras o paneles de marcador en una sala de conferencias, a la vez que conservan una fidelidad óptima desde el sensor de cámara.

Esto permite a las aplicaciones obtener imágenes de mayor detalle de estos objetos sin necesidad de cambiar las resoluciones multimedia. Los controles MSXU de la ventana digital se dirigen a todo el sensor de cámara y no a una tubería o punto de conexión individuales.

MSXU_CONTROL_DIGITALWINDOW de control de ventana digital

El control MSXU de la ventana digital especifica el campo de vista y zoom de la cámara mientras la cámara está transmitiendo. Este control es un posible sustituto de Panorámica, Inclinación y Zoom. Este control solo se aplica mientras la cámara está transmitiendo activamente.

Consulte la sección 2.2.2.11 Control de ventana digital en las extensiones de Microsoft a la especificación USB Video Class 1.5 para obtener más información.

Control de configuración de ventana digital MSXU_CONTROL_DIGITALWINDOW_CONFIG

El control MSXU De configuración de ventana digital especifica los límites de escalado de la cámara dadas todas las resoluciones disponibles. Las resoluciones son independientes del tipo de medio, por lo que dos tipos de medios que anuncian la misma resolución de pantalla se combinan en una sola funcionalidad.

Consulte sección 2.2.2.12 Control de configuración de ventana digital en las extensiones de Microsoft a la especificación USB Video Class 1.5 para obtener más información.

Información general sobre la implementación

En la imagen siguiente se muestra una escena típica de sala de conferencias capturada por la cámara.

captura completa del sensor.

El sensor de imagen captura algo más que la imagen transmitida a la aplicación cliente, que se muestra en el cuadro de límite rojo. El rectángulo delimitador naranja muestra el campo de vista capturado por la cámara según la relación de aspecto seleccionada. Para el control de ventana digital, el rectángulo de selección predeterminado es este cuadro naranja. Las coordenadas proporcionadas a lo largo del lado muestran los límites de este cuadro. La salida del sensor se recorta y se escala adecuadamente a la resolución de medios de salida de este cuadro.

La placa de marcador que se llama en la imagen es un objeto de interés. Si una aplicación quisiera centrarse en este objeto, podría establecer una ventana digital para que la incluya.

ventana digital recortada.

El cuadro de límite verde se establece a través del control Ventana digital de este ejemplo. Abarca el objeto principal de interés, la placa de marcador. El rectángulo puede contener datos que están fuera del objeto de interés porque es posible que el objeto no sea rectangular o que no se vea desde el lado o que no tenga la misma relación de aspecto que el tipo de medio.

La ventana digital mantiene la relación de aspecto del formato de salida y la cámara escala la salida del sensor para que coincida. Las coordenadas especificadas siempre son relativas al cuadro de límite original y predeterminado.

Relación con el control de ventana digital UVC 1.5

Los nuevos controles MSXU de ventana digital siguientes realizan una función casi idéntica a la CT_DIGITAL_WINDOW_CONTROL encontrada en la especificación de clase UVC 1.5 en la sección 4.2.2.1.19 Control de ventana digital.

La specification.pdfde clase UVC 1.5 se puede descargar en el sitio web de especificación de clase de vídeo USB .

Sin embargo, hay algunas diferencias importantes.

Ajuste

El CT_DIGITAL_WINDOW_CONTROL tal como se especifica permite a una aplicación establecer la ventana en un conjunto arbitrario de coordenadas que solo están limitados por los valores de GET_MIN, GET_MAX y GET_RES. Para ajustarse a este campo de vista dentro de la ventana de salida, este comportamiento requiere que la cámara rechace lo que debe ser legal SET_CUR solicitudes o para implementar el muestreo o el escalado de la imagen que podría distorsionar la imagen horizontal o verticalmente, es decir, modificar la relación de aspecto.

Dado que probablemente la distorsión no es deseable que se pueda evitar en una implementación de CT_DIGITAL_WINDOW_CONTROL rechazando dichas solicitudes, pero en lugar del control contienen dicha ambigüedad, el control MSXU de ventana digital mantiene el campo de vista en la relación de aspecto de la resolución de salida. Por lo tanto, el escalado no es una característica o una opción en este control MSXU.

Face-Framing automática

El CT_DIGITAL_WINDOW_CONTROL no tiene ningún concepto de seguimiento facial. Por otro lado, el CT_REGION_OF_INTEREST_CONTROL tiene este concepto, pero esto se usa principalmente para detectar, notificar y actualizar potencialmente la región de interés de los controles 3A. En teoría, CT_REGION_OF_INTEREST_CONTROL se podría usar si se implementa como un control AutoUpdate, lo que permitiría a un controlador de cámara aprovechar ese control para desplazarse, inclinar o acercar el CT_DIGITAL_WINDOW_CONTROL sincronizado.

Este nuevo control permite controlar directamente el seguimiento facial para ajustar el campo de vista inclinando, desplazando o acercando digitalmente para mantener la mayor parte de la cara visible como sea práctico. Además, el seguimiento facial usado en este control sigue siendo independiente de cualquier región de control de interés.

El método de seguimiento facial depende de la implementación.

Metadatos por fotograma

El UVC 1.5 original no tiene un concepto de metadatos por fotograma. Microsoft ha ampliado la especificación UVC para admitir metadatos insertados en los encabezados de carga del marco. La habilitación de esta compatibilidad se puede realizar a través del control MSXU_CONTROL_METADATA.

Además, el CT_DIGITAL_WINDOW_CONTROL no especifica si el control es sincrónico, asincrónico o asincrónico o de actualización automática. Además, el control incluye información paso a paso que se usa para la animación del cambio por parte de la propia cámara. Esto implica que un movimiento panorámico digital, inclinación y zoom podría tardar una cantidad significativa de tiempo en completarse. Sin embargo, dado que el control se habría establecido en nuevas coordenadas, no está claro cuánto tiempo tardaría completarse y cuándo o cómo informaría de que la transición se realiza. Peor no hay información sobre dónde se origina el marco actual en el campo de vista.

Esta ambigüedad podría resolverse con los metadatos por fotograma insertados por la cámara, pero no es posible requerir CT_DIGITAL_WINDOW_CONTROL admitir metadatos por fotograma directamente, ya que los metadatos por fotograma están fuera del ámbito de la especificación UVC.

Relaciones de aspecto

No está claro o no está definido cómo CT_DIGITAL_WINDOW_CONTROL controla las diferentes relaciones de aspecto. Para recortar correctamente el campo de vista, los valores de GET_DEF y GET_CUR notificados por el control UVC 1.5 tendrían que cambiar para que coincidan con el aspecto actual después de cada sondeo o confirmación. Para controlar esto correctamente, el CT_DIGITAL_WINDOW_CONTROL debe ser un control AutoUpdate y el controlador tendría que no almacenar en caché el resultado del GET_DEF, sino volver a consultar este valor para cada resolución expuesta por la cámara.

Esta complejidad podría crear problemas de detección al intentar asignar el control de ventana digital a una resolución específica. Es posible que no sepa de antemano qué parte del campo de vista del sensor usaría la cámara de forma predeterminada hasta que realice un sondeo o confirme en todos los tipos de medios admitidos por la cámara. Esto presenta posibles problemas al detectar los valores de porche de una resolución determinada, ya que dependen del campo de vista del sensor que normalmente usa ese formato en relación con el campo total de vista disponible en el sensor.

Funcionalidad

La ventana digital está relacionada con varios controles existentes:

  • Movimiento panorámico

  • Inclinación

  • Zoom

Si la cámara usa implementaciones digitales para cualquiera de estos controles, deben cambiar los valores notificados por La ventana digital para que coincidan con el mismo campo de vista. De forma similar, la ventana digital debe cambiar los valores notificados por estos controles. Todas las implementaciones digitales de estos controles deben actualizarse entre sí para permanecer sincronizadas.

Microsoft no define la relación entre estos controles y solo que el último control establecido tiene prioridad.

Regiones de interés

Dado que la ventana digital cambia el campo de vista aparente (FOV), las coordenadas seleccionadas a través de cualquier región de interés (ROI) control deben restablecerse a sus valores predeterminados cada vez que se emite un SET a este control. La lista de controles de ROI actuales incluye:

  • KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_PROPERTY_ID

  • KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_CONFIGCAPS/KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL

Además, estos controles Region of Interest especifican sus regiones relativas a la ventana de salida, por lo que las coordenadas que especifican siempre son un rectángulo en el campo de vista actual. Dado que el control Ventana digital cambia el campo de vista actual, el rectángulo Región de interés debe reasignarse por la cámara para que se ajuste a la ventana digital actual. Por ejemplo, si la ventana digital actual tiene un valor de (OriginX, OriginY) de (0,0, 0.0) y windowSize de 0,5 y si se especifica una región de interés (0,0, 0,0), (0,5, 0,5), la cámara debe reasignar el rectángulo Región de interés a los píxeles correspondientes a (0,0, 0,0), (0,25, 0,25) en el campo de vista predeterminado. Esto debe ser análogo y coherente con el comportamiento aparente de los controles de movimiento panorámico, inclinación y zoom con estos controles de región de interés.

Streaming

Dado que los valores válidos de la ventana digital disponibles dependen de la relación de aspecto actual, la cámara debe haber seleccionado un tipo de medio y una interfaz de streaming para que aplique MinWindowSize.

Valores informativos

NonUpscalingWindowSize notificado también se notifica por resolución, pero solo es informativo para la aplicación. Este valor informa a la aplicación del valor que se va a establecer como WindowSize para que no obtenga ningún escalado ascendente de la imagen de origen. Esto permite a la aplicación capturar una imagen en los límites del intervalo de fidelidad del sensor de cámara.

Atributos de metadatos

Si la cámara anuncia MSXU_CONTROL_DIGITALWINDOW, MSXU_CONTROL_DIGITALWINDOW_CONFIG y ha establecido un tamaño de búfer distinto de cero en MSXU_CONTROL_METADATA, la cámara debe emitir el atributo MF_CAPTURE_METADATA_DIGITAL_WINDOW para cada fotograma. Puede proporcionar esto a través de un MFT de dispositivo o incluyendo un atributo MetadataId_DigitalWindow (valor de 7) en el búfer de metadatos sin procesar. Cómo incluir atributos de metadatos se describe aún más en la sección 2.2.3.1 Metadatos de formato estándar de Microsoft.

Estos metadatos se usan para informar de qué ventana digital se aplicó al ejemplo actual. Para ello, inicializa el KSCAMERA_METADATA_ITEMHEADER con el valor MetadataId_DigitalWindow y el tamaño de la estructura y copia sobre los valores de OriginX, OriginY y WindowSize aplicados desde el control de ventana digital en una estructura de KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING asociada.

Consulte también

Sección 2.2.2.11 Control de ventana digital

Sección 2.2.2.12 Control de configuración de ventana digital

Sección 2.2.3.1 Metadatos de formato estándar de Microsoft

Especificación de clase de vídeo USB

KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW_CONFIGCAPS

KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW

KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPS

KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPSHEADER

KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING

KSCAMERA_METADATA_DIGITALWINDOW