Applications auxiliaire pour appareils photo et caméra
Cet article décrit des applications auxiliaires, une fonctionnalité d'extension permettant aux fabricants de caméras de créer des applications personnalisées capables de configurer la caméra et d'ajuster les paramètres d'image par défaut.
Introduction
Windows 11 fournit une infrastructure Camera Companion App qui permet aux fabricants de développer des applications avec les fonctionnalités suivantes :
Possibilité d'afficher et/ou de modifier les mêmes paramètres de valeur par défaut que la page des paramètres de caméra (ex. : luminosité, contraste, effets d'arrière-plan, etc.).
Possibilité d'enregistrer, de mettre à jour ou de supprimer les valeurs par défaut pour d'autres contrôles de caméra connus de Windows mais qui ne sont pas accessibles via la page des paramètres de caméra (par exemple, le contrôle de la teinte).
Possibilité d'enregistrer, de mettre à jour ou de supprimer les valeurs par défaut des contrôles de la caméra propres au fabricant (par exemple, la commande marche/arrêt de l'effet de réglage de l'éclairage personnalisé du fabricant de la caméra).
Lorsqu’une caméra enregistre une application auxiliaire associée, une entrée est ajoutée à la page des paramètres de la caméra. Si l’application est installée, elle peut être lancée à partir de la page des paramètres de la caméra. Sinon un lien vers le Microsoft Store s’affiche pour la télécharger.
Les applications auxiliaires ont un accès spécial à une API qui leur permet d'enregistrer, de mettre à jour ou de supprimer des valeurs par défaut comme la page des paramètres de la caméra.
Terminologie et conditions préalables
Terme | Définition |
---|---|
Application compagne | Application personnalisée développée par le fabricant de caméras qui permet de configurer et de gérer une caméra en plus de la page des paramètres de la caméra. |
Valeur actuelle | Valeur d'une commande de caméra actuellement active dans l'ISP de la caméra et conservée dans sa mémoire temporaire. |
Valeur par défaut | Valeur initiale d'une commande de caméra qui est stockée sur le disque et enregistrée pour une caméra spécifique, pour un compte utilisateur spécifique, sur un PC spécifique. |
HSA | Application de Support Matériel (Hardware Support App), un framework pris en charge par Microsoft pour télécharger et installer automatiquement les applications associées au matériel depuis le Microsoft Store lorsque l'appareil est connecté. |
NPU | Accélérateur de réseau neuronal (Neural Processing Unit), matériel dédié conçu pour traiter les charges de travail d’intelligence artificielle avec un débit et une efficacité élevés. |
Effets Windows Studio | Collection d'effets vidéo disponibles sur certains PC Windows équipés de NPU. |
UVC | classe vidéo USB (USB Video Class), interface standardisée pour le contrôle et la diffusion à partir de caméras connectées en USB. |
Conditions requises pour l’application auxiliaire
Les applications auxiliaires doivent être empaquetées avec une identité de package. L'application auxiliaire doit également être disponible sur le Microsoft Store, ce qui permet à la page des paramètres de la caméra de guider les clients vers le Store pour installer l'application, si ce n'est pas déjà fait.
Les applications de bureau traditionnelles sans identité de package ne peuvent pas être utilisées comme application auxiliaire.
Applications auxiliaires en tant que HSA
Il n'est pas nécessaire que les applications auxiliaires soient également configurées en tant qu'applications de support matériel, mais cela est fortement recommandé. Les HSA sont des applications spéciales dans le Microsoft Store qui sont associées à un appareil matériel spécifique. Lorsque cet appareil est connecté à un PC, la HSA est automatiquement téléchargée et installée depuis le Microsoft Store lorsqu'elle est disponible.
Association d'une application auxiliaire à une caméra
Le fabricant d'une caméra peut associer une application auxiliaire en renseignant une clé de propriété d'appareil spécifique avec le nom de la famille de packages (PFN) de l'application auxiliaire :
Nom | Type | Données |
---|---|---|
SCSVCamPfn | REG_SZ | <PFN> |
Pour identifier le PFN de l’application auxiliaire, exécutez Get-AppxPackage dans PowerShell, par exemple :
Get-AppxPackage -Name NomApplicationAuxiliaire
Pour associer l’application auxiliaire à une caméra, utilisez un descripteur MS OS dans une caméra UVC ou la directive AddReg dans l’INF du pilote de caméra. Par exemple, à l’aide du fichier INF :
[SocCaptureSim.RearCamera.AddReg]
HKR,,SCSVCamPfn,,%AppPFN%
...
[Strings]
AppPFN="Contoso.CameraCompanion_xxxxxxxx00000"
Lorsqu'une application auxiliaire est associée à une caméra, la page des paramètres de la caméra comprend un lien vers l'application auxiliaire dans la rubrique « Paramètres associés » de la page des paramètres spécifiques à la caméra.
Si l’application auxiliaire est déjà installée, un lien « Open {nom de l’application auxiliaire} » (Ouvrir {nom de l’application auxiliaire}) s’affiche. Cliquer sur ce lien permet de lancer l’application.
Si l’application auxiliaire n’est pas déjà installée, un lien s’affiche pour lancer le Microsoft Store afin d'y télécharger et d'installer l’application.
Une caméra ne peut être associée qu’à une seule application auxiliaire.
Lancement d'une application auxiliaire à partir de la page des paramètres de la caméra
Lorsque la page des paramètres de la caméra lance l'application auxiliaire, le lien symbolique de la caméra est transmis en tant que contexte via les arguments Application.OnLaunched.
Argument | Type | Données |
---|---|---|
cameraId | Chaîne | Lien symbolique |
Cette fonctionnalité permet à l'application auxiliaire d'afficher les paramètres corrects de la caméra dans les scénarios suivants :
Une seule application auxiliaire prend en charge plusieurs caméras sur un seul système (par exemple, sur une tablette, une application OEM prend en charge les caméras avant et arrière).
Un client possède deux caméras identiques (ou de la même marque) connectées à son système et gérées par la même application auxiliaire.
Ouverture de la page des paramètres de la caméra depuis une application auxiliaire
Une application auxiliaire peut ouvrir la page des paramètres de la caméra Windows à l’aide d’un URI de lien profond. Pour plus d’informations, consultez Lancer la page des paramètres de le caméra.
Configuration de valeurs par défaut à partir d’applications auxiliaires
Une application auxiliaire peut utiliser l’API IMFCameraConfigurationManager pour définir la configuration de la valeur par défaut de l’utilisateur actuel. Cette API permet à l'application auxiliaire de lire toutes les valeurs par défaut configurées (par exemple, les valeurs par défaut définies par l'utilisateur à l'aide de la page des paramètres de la caméra), de modifier toutes les valeurs par défaut, d'en enregistrer de nouvelles ou de supprimer celles qui sont enregistrées.
Les valeurs par défaut sont enregistrées dans la base de données du système sous la forme d'une paire composée d'un GUID de propriété KS et de la valeur correspondante. Cela permet à l’architecture d’être indépendante de la définition de la propriété KS. Cette flexibilité permet à une application auxiliaire de définir, modifier ou supprimer la valeur par défaut des paramètres suivants :
Paramètres également configurables à l'aide de la page des paramètres de la caméra (par exemple, les paramètres de luminosité, de contraste, d'effets d'arrière-plan, etc.)
Paramètres pour d'autres commandes de caméra qui sont connues de Windows, mais qui ne sont pas exposées via la page des paramètres de la caméra (par exemple, la commande Hue)
Paramètres de commandes de caméra propres au fabricant (par exemple, la commande marche/arrêt de l'effet d'ajustement de l'éclairage personnalisé du fabricant de la caméra)
Configurer la luminosité à partir d’une application auxiliaire
Il existe plusieurs façons pour une caméra de contrôler la luminosité effective de l’image capturée. Ainsi, la luminosité peut être augmentée en appliquant un simple gain à l'image ou en augmentant le temps d'exposition de la caméra.
Windows prend en charge un contrôle de luminosité hérité (KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS) dont la conception a été guidée par le choix de contrôles de gain simples. Windows comporte également un contrôle de la compensation de l'exposition (KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION), conçu pour commander une valeur d'exposition positive ou négative à l'algorithme d'exposition automatique d'une caméra.
Quelle que soit le contrôle de luminosité utilisé par une caméra, il doit être appliqué dans la caméra de manière à ce que, lorsqu'elle est « centrée », la luminosité soit neutre, et que le client puisse appliquer un décalage en augmentant ou en diminuant la valeur. Pour une qualité d'image optimale, il est fortement recommandé que les caméras prennent en charge le contrôle de la compensation de l'exposition de sorte que si un client ajuste le contrôle de la luminosité dans la page des paramètres de caméra ou dans une application auxiliaire, la caméra soit paramétrée pour appliquer un biais positif ou négatif fixe à l'exposition, quelles que soient les conditions d'éclairage, à tout moment.
Pour plus d’informations, consultez la page des paramètres de caméra pour connaître le comportement du contrôle de luminosité sur la page des paramètres de caméra en fonction du contrôle mis en œuvre par la caméra. Si une application auxiliaire comporte également un curseur de luminosité, il est essentiel de reproduire la logique pour assurer la synchronisation entre le curseur de luminosité de la page des paramètres de caméra et celui de l'application auxiliaire.
L'exemple d'application auxiliaire dont le lien figure ci-dessous comprend une mise en œuvre de référence de cette logique.
Supervision des changements des valeurs actuelles en temps réel
Si une application auxiliaire fonctionne parallèlement à la page des paramètres de caméra, il est possible que le client modifie une valeur par défaut en utilisant la page des paramètres de caméra alors même que l'application auxiliaire fonctionne en mode partagé pour afficher un aperçu. Dans ce cas, il est souhaitable que l'application auxiliaire surveille les modifications de la valeur par défaut des contrôles afin de rester synchronisée.
Pour ce faire, l'application auxiliaire peut utiliser IMFCameraControlMonitor pour superviser l'évolution de la valeur actuelle des contrôles (Propriétés KS) présentant un intérêt. Ces modifications peuvent se produire en raison des facteurs suivants :
Une application de caméra (par exemple, Microsoft Teams) utilise la caméra et modifie la valeur actuelle d'un contrôle.
La page des paramètres de caméra utilise la caméra et apporte une modification à la valeur par défaut d’un contrôle (ce qui met également à jour la valeur actuelle).
Cette API peut être utilisée comme déclencheur pour relire la valeur par défaut d’un contrôle d’intérêt à l’aide de l’API IMFCameraConfigurationManager et mettre à jour l’interface utilisateur si des valeurs par défaut ont changé.
Exemples d’applications auxiliaires
Un exemple d’application auxiliaire est disponible sur GitHub : Exemple CameraSettingsExternalSettingsApp. Cet exemple montre comment utiliser l’API IMFCameraConfigurationManager pour modifier la valeur par défaut en matière de contraste, de luminosité et de segmentation d’arrière-plan.
Un autre exemple d’application illustrant comment utiliser l’API IMFCameraControlMonitor pour superviser les modifications apportées aux contrôles d’intérêt est disponible sur GitHub : exemple ControlMonitorApp.
Voir aussi
Exemple CameraSettingsExternalSettingsApp
Application d'assistance matérielle
KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS
KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION