Información general de 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 marcadores en una sala de conferencias mientras conserva la fidelidad óptima del sensor de cámara.
Esto permite a las aplicaciones obtener imágenes de detalle más altas de estos objetos sin necesidad de cambiar las resoluciones multimedia. Los controles MSXU de ventana digital están dirigidos a todo el sensor de cámara y no a una canalización o punto de conexión individuales.
Control de ventana digital MSXU_CONTROL_DIGITALWINDOW
El control MSXU de 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 Pan, Inclinación y Zoom. Este control solo se aplica mientras la cámara está transmitiendo activamente.
Consulte 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 multimedia, por lo que dos tipos multimedia que anuncian la misma resolución de pantalla se combinan en una sola funcionalidad.
Consulte la sección 2.2.2.12 Digital Window Config Control (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.
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 dada la relación de aspecto seleccionada. Para el control de ventana digital, el cuadro de límite 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 abarcarlo.
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 predeterminado original.
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 Digital Window Control.
El UVC 1.5 Class specification.pdf 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 ajustar 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 remuestreo o la reasignación de la imagen que podría distorsionar la imagen horizontal o verticalmente, es decir, modificar la relación de aspecto.
Puesto que es probable que la distorsión no sea deseable en una implementación de CT_DIGITAL_WINDOW_CONTROL rechazando dichas solicitudes, pero en lugar de que el control contenga 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.
Marco facial automático
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 podría usarse si se implementa como un control AutoUpdate, lo que permitiría a un controlador de cámara aprovechar ese control para desplazar, inclinar o acercar la CT_DIGITAL_WINDOW_CONTROL sincronizada.
Este nuevo control permite controlar directamente el seguimiento facial para ajustar el campo de vista inclinando, panorámicamente 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 incrustados 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 o asincrónico o de actualización automática. Además, el control incluye información paso a paso usada para la animación del cambio por parte de la propia cámara. Esto implica que una panorámica 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 se realiza la transición. 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 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 necesitarían 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 consultar este valor de nuevo 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 con antelación 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 normalmente en uso con respecto al 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. Del mismo modo, 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 siempre que se emita un SET a este control. La lista de controles roi actuales incluye:
KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_PROPERTY_ID
KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_CONFIGCAPS/KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL
Además, estos controles Región de interés especifican sus regiones en relación con 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 (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 panorámica, inclinación y zoom con estos controles de región de interés.
Streaming
Dado que los valores de ventana digital válidos 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
El valor nonUpscalingWindowSize notificado también se notifica por resolución, pero solo es informativo para la aplicación. Este valor informa a la aplicación qué valor se va a establecer como WindowSize para que no obtenga ninguna escala ascendente de la imagen de origen. Esto permite a la aplicación capturar una imagen en los límites de la gama 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 mediante la inclusión de 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