Vue d’ensemble de la fenêtre numérique

Deux nouveaux contrôles de fenêtre numérique fournissent un mécanisme de panoramique numérique, d’inclinaison et de zoom pour les caméras qui offrent des capteurs natifs haute résolution, afin qu’une application puisse automatiquement se concentrer de manière sélective sur des objets tels que des visages ou des panneaux de marqueur dans une salle de conférence tout en conservant une fidélité optimale du capteur de la caméra.

Cela permet aux applications d’obtenir des images plus détaillées de ces objets sans avoir à modifier les résolutions multimédias. Les contrôles MSXU de la fenêtre numérique ciblent l’ensemble du capteur de la caméra et non un canal ou un point de terminaison individuel.

MSXU_CONTROL_DIGITALWINDOW de contrôle de fenêtre numérique

Le contrôle MSXU de fenêtre numérique spécifie le champ de vue et le zoom de l’appareil photo pendant la diffusion en continu de l’appareil photo. Ce contrôle est un substitut potentiel aux options Panoramique, Inclinaison et Zoom. Ce contrôle s’applique uniquement pendant que la caméra est activement en streaming.

Pour plus d’informations, consultez la section 2.2.2.11 Contrôle de fenêtre numérique dans les extensions Microsoft de la classe vidéo USB 1.5 .

MSXU_CONTROL_DIGITALWINDOW_CONFIG de contrôle de configuration de fenêtre numérique

Le contrôle MSXU de configuration de fenêtre numérique spécifie les limites de mise à l’échelle de l’appareil photo en fonction de toutes les résolutions disponibles. Les résolutions étant indépendantes du type de média, deux types de médias affichant la même résolution d’affichage sont combinés en une seule fonctionnalité.

Pour plus d’informations, consultez la Section 2.2.2.12 Digital Window Config Control dans les extensions Microsoft de la classe vidéo USB 1.5.

Vue d’ensemble de l’implémentation

L’image suivante illustre une scène de salle de conférence classique capturée par la caméra.

capture complète du capteur.

Le capteur d’image capture quelque chose de plus que l’image diffusée vers l’application cliente, qui s’affiche dans le cadre englobant rouge. Le cadre englobant orange illustre le champ de vision capturé par l’appareil photo en fonction du rapport d’aspect sélectionné. Pour le contrôle de fenêtre numérique, le cadre englobant par défaut est cette zone orange. Les coordonnées données le long du côté montrent les limites de cette zone. La sortie du capteur est rognée et mise à l’échelle de manière appropriée sur la résolution du média de sortie à partir de cette zone.

Le tableau de marqueur appelé dans l’image est un objet d’intérêt. Si une application souhaitait se concentrer sur cet objet, elle peut définir une fenêtre numérique pour l’englober.

fenêtre numérique mise à l’échelle rognée.

Le cadre englobant vert est défini via le contrôle Fenêtre numérique dans cet exemple. Il englobe l’objet principal d’intérêt, le tableau de marqueur. Le rectangle peut contenir des données qui se trouvent en dehors de l’objet d’intérêt, car l’objet n’est peut-être pas rectangulaire ou ne peut pas être visualisé depuis le côté ou il n’a peut-être pas le même rapport d’aspect que le type multimédia.

La fenêtre numérique conserve le rapport d’aspect du format de sortie et l’appareil photo met à l’échelle la sortie du capteur pour qu’elle corresponde. Les coordonnées spécifiées sont toujours relatives au cadre englobant par défaut d’origine.

Relation avec le contrôle de fenêtre numérique UVC 1.5

Les nouveaux contrôles MSXU de fenêtre numérique ci-dessous exécutent une fonction presque identique à la CT_DIGITAL_WINDOW_CONTROL trouvée dans la spécification de la classe UVC 1.5 sous la section 4.2.2.1.19 Contrôle de fenêtre numérique.

Les specification.pdfde classe UVC 1.5 peuvent être téléchargés sur le site web des spécifications de classe vidéo USB .

Toutefois, il existe des différences importantes.

Étirement

Le CT_DIGITAL_WINDOW_CONTROL tel que spécifié permet à une application de définir la fenêtre sur un ensemble arbitraire de coordonnées limitées uniquement par les valeurs GET_MIN, GET_MAX et GET_RES. Pour adapter ce champ de vue dans la fenêtre de sortie, ce comportement nécessite que la caméra rejette ce qui doit être légal SET_CUR demandes, soit qu’elle implémente un rééchantillonnage ou une mise à l’échelle de l’image qui pourrait potentiellement fausser l’image horizontalement ou verticalement, c’est-à-dire modifier le rapport d’aspect.

Étant donné que la distorsion est probablement indésirable, elle peut être évitée dans une implémentation de CT_DIGITAL_WINDOW_CONTROL en rejetant de telles demandes, mais au lieu que le contrôle contienne une telle ambiguïté, le contrôle MSXU de la fenêtre numérique maintient le champ de vue au rapport d’aspect de la résolution de sortie. Par conséquent, la mise à l’échelle n’est pas une fonctionnalité ou une option dans ce contrôle MSXU.

Face-Framing automatique

Le CT_DIGITAL_WINDOW_CONTROL n’a aucun concept de suivi du visage. D’autre part, le CT_REGION_OF_INTEREST_CONTROL a un tel concept, mais il est principalement utilisé pour détecter, signaler et éventuellement mettre à jour la région d’intérêt des contrôles 3A. En théorie, CT_REGION_OF_INTEREST_CONTROL peut être utilisé s’il est implémenté en tant que contrôle AutoUpdate, ce qui permettrait à un pilote de caméra de tirer parti de ce contrôle pour faire pivoter, incliner ou zoomer le CT_DIGITAL_WINDOW_CONTROL en synchronisation.

Ce nouveau contrôle permet de contrôler directement le suivi du visage pour ajuster le champ de vue en inclinant, en panoramique ou en zoomant numériquement pour garder autant de visage visible que possible. En outre, le suivi du visage utilisé sur ce contrôle reste indépendant de tout contrôle de région d’intérêt.

La méthode de suivi des visages dépend de l’implémentation.

Métadonnées par image

L’UVC 1.5 d’origine n’a pas de concept de métadonnées par image. Microsoft a étendu la spécification UVC pour prendre en charge les métadonnées incorporées dans les en-têtes de charge utile du frame. L’activation de cette prise en charge peut être effectuée via le contrôle MSXU_CONTROL_METADATA.

En outre, le CT_DIGITAL_WINDOW_CONTROL ne spécifie pas si le contrôle est synchrone, asynchrone ou à jour automatique. En outre, le contrôle inclut des informations pas à pas utilisées pour l’animation du changement par la caméra elle-même. Cela implique qu’un panoramique, une inclinaison et un zoom numériques peuvent prendre beaucoup de temps. Toutefois, étant donné que le contrôle aurait été défini sur de nouvelles coordonnées, il n’est pas clair combien de temps il faudrait et quand ou comment il signalerait que la transition est effectuée. Pire, il n’existe aucune information sur l’origine de la trame actuelle dans le champ de vue.

Cette ambiguïté peut être résolue avec des métadonnées par image injectées par l’appareil photo, mais il n’est pas possible d’exiger CT_DIGITAL_WINDOW_CONTROL pour prendre en charge les métadonnées par image directement, car les métadonnées par image dépassent la portée de la spécification UVC.

Allongements

La façon dont CT_DIGITAL_WINDOW_CONTROL gère les différents rapports d’aspect n’est pas définie ou n’est pas définie. Pour rogner correctement le champ de vision, les valeurs GET_DEF et GET_CUR signalées par le contrôle UVC 1.5 doivent être modifiées pour qu’elles correspondent à l’aspect actuel après chaque sonde/validation. Pour gérer cela correctement, le CT_DIGITAL_WINDOW_CONTROL doit être un contrôle AutoUpdate et le pilote ne doit pas mettre en cache le résultat GET_DEF, mais plutôt interroger cette valeur à nouveau pour chaque résolution exposée par la caméra.

Cette complexité peut créer des problèmes de découverte lors de la tentative de mapper le contrôle de fenêtre numérique à une résolution spécifique. Vous ne savez peut-être pas à l’avance quelle partie du champ d’affichage du capteur la caméra utiliserait par défaut tant que vous n’avez pas effectué une sonde ou une validation sur tous les types de supports pris en charge par la caméra. Cela présente des problèmes potentiels lors de la découverte des valeurs de porc pour une résolution donnée, car elles dépendent du champ de vision du capteur normalement utilisé par ce format par rapport au champ d’affichage total disponible sur le capteur.

Fonctionnalités

La fenêtre numérique est liée à plusieurs contrôles existants :

  • Panoramique

  • Tilt

  • Zoom

Si l’appareil photo utilise des implémentations numériques pour l’un de ces contrôles, il doit modifier les valeurs signalées par Digital Window pour qu’elles correspondent au même champ d’affichage. De même, la fenêtre numérique doit modifier les valeurs signalées par ces contrôles. Toutes les implémentations numériques de ces contrôles doivent se mettre à jour pour rester synchronisées.

Microsoft ne définit pas la relation entre ces contrôles et seulement que le dernier contrôle défini est prioritaire.

Régions d’intérêt

Étant donné que la fenêtre numérique modifie le champ d’affichage apparent (FOV), les coordonnées sélectionnées via n’importe quel contrôle de région d’intérêt (ROI) doivent être réinitialisées à leurs valeurs par défaut chaque fois qu’un SET est émis pour ce contrôle. La liste des contrôles de retour sur investissement actuels comprend :

  • KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_PROPERTY_ID

  • KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_CONFIGCAPS / KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL

En outre, ces contrôles de région d’intérêt spécifient leurs régions par rapport à la fenêtre de sortie, de sorte que les coordonnées qu’ils spécifient sont toujours un rectangle dans le champ d’affichage actuel. Étant donné que le contrôle Fenêtre numérique modifie le champ d’affichage actuel, un rectangle de zone d’intérêt doit être réappéré par l’appareil photo pour qu’il s’adapte à la fenêtre numérique actuelle. Par instance, si la fenêtre numérique actuelle a une valeur (OriginX, OriginY) de (0,0, 0.0) et une Taille de fenêtre de 0,5 et si une région d’intérêt de (0.0, 0.0), (0.5, 0.5) est spécifiée, l’appareil photo doit maper le rectangle de la région d’intérêt en pixels correspondant à (0.0, 0.0), (0.25, 0.25) dans le champ d’affichage par défaut. Cela doit être analogue et cohérent avec le comportement apparent des contrôles panoramiques, d’inclinaison et de zoom avec ces contrôles de région d’intérêt.

Diffusion en continu

Étant donné que les valeurs de fenêtre numérique valides disponibles dépendent du rapport d’aspect actuel, l’appareil photo doit avoir sélectionné un type de média et une interface de diffusion en continu pour appliquer minWindowSize.

Valeurs d’information

La valeur NonUpscalingWindowSize signalée est également signalée par résolution, mais elle n’est que des informations sur l’application. Cette valeur indique à l’application la valeur à définir en tant que WindowSize pour n’obtenir aucune mise à l’échelle de l’image source. Cela permet à l’application de capturer une image aux limites de la plage de fidélité du capteur d’appareil photo.

Attributs de métadonnées

Si la caméra publie MSXU_CONTROL_DIGITALWINDOW, MSXU_CONTROL_DIGITALWINDOW_CONFIG et a défini une taille de mémoire tampon différente de zéro sur MSXU_CONTROL_METADATA, la caméra doit émettre l’attribut MF_CAPTURE_METADATA_DIGITAL_WINDOW pour chaque image. Il peut fournir cela via un MFT d’appareil ou en incluant un attribut MetadataId_DigitalWindow (valeur 7) dans la mémoire tampon de métadonnées brutes. La section 2.2.3.1 Métadonnées au format standard Microsoft explique comment inclure des attributs de métadonnées de métadonnées.

Ces métadonnées sont utilisées pour signaler la fenêtre numérique qui a été appliquée à l’exemple actuel. Pour ce faire, il initialise le KSCAMERA_METADATA_ITEMHEADER avec la valeur MetadataId_DigitalWindow et la taille de la structure, puis copie sur les valeurs OriginX, OriginY et WindowSize appliquées du contrôle de fenêtre numérique dans une structure KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING associée.

Voir aussi

Section 2.2.2.11 Contrôle de fenêtre numérique

Section 2.2.2.12 Contrôle de configuration de fenêtre numérique

Section 2.2.3.1 Métadonnées au format Standard Microsoft

Spécification de la classe vidéo 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