Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Dois novos controles de janela digital fornecem um mecanismo de pan, tilt e zoom digitais para câmeras que oferecem sensores nativos de alta resolução, para que um aplicativo possa focar automaticamente seletivamente em objetos como rostos ou quadros de marcação em uma sala de conferência, mantendo a fidelidade ideal do sensor da câmera.
Isso permite que os aplicativos obtenham imagens mais detalhadas de tais objetos sem a necessidade de alterar as resoluções de mídia. Os controles MSXU de janela digital têm como alvo todo o sensor da câmera e não um tubo ou ponto de extremidade individual.
Controlo Digital de Janelas MSXU_CONTROL_DIGITALWINDOW
O controlo MSXU da janela digital especifica o campo de visão e o zoom da câmara enquanto ela está a transmitir. Esse controle é um substituto potencial para Pan, Tilt e Zoom. Este controle aplica-se apenas enquanto a câmara está a transmitir ativamente.
Consulte Seção 2.2.2.11 Digital Window Control no Microsoft extensions to USB Video Class 1.5 specification para obter detalhes.
Controle de configuração de janela digital MSXU_CONTROL_DIGITALWINDOW_CONFIG
O controle MSXU Digital Window Config especifica os limites de escala da câmera dadas todas as resoluções disponíveis. As resoluções são independentes do tipo de mídia, portanto, dois tipos de mídia que anunciam a mesma resolução de exibição são combinados em um único recurso.
Consulte a Seção 2.2.2.12 Digital Window Config Control nas especificações das extensões da Microsoft para USB Video Class 1.5 para obter detalhes.
Visão geral da implementação
A imagem a seguir ilustra uma cena típica de sala de conferência capturada pela câmera.
O sensor de imagem captura mais do que apenas a imagem transmitida para a aplicação cliente, conforme mostrado na caixa delimitadora vermelha. A caixa delimitadora laranja ilustra o campo de visão capturado pela câmera, dada a proporção selecionada. Para o controlo digital de janelas, a caixa delimitadora padrão é esta caixa laranja. As coordenadas dadas ao longo dos lados mostram os limites deste espaço. A saída do sensor é cortada e adequadamente dimensionada de acordo com a resolução da mídia de saída fornecida por esta caixa.
O quadro de marcadores destacado na imagem é um objeto de interesse. Se um aplicativo quiser se concentrar nesse objeto, ele pode definir uma janela digital para abranger ele.
A caixa delimitadora verde é definida através do controle Digital Window neste exemplo. Engloba o objeto principal de interesse, o quadro de marcadores. O retângulo pode conter dados que estão fora do objeto de interesse porque o objeto pode não ser retangular ou não pode ser visto de lado ou pode não ter a mesma proporção que o tipo de mídia.
A janela digital mantém a proporção do formato de saída e a câmera amplia a saída do sensor para corresponder. As coordenadas especificadas são sempre relativas à caixa delimitadora padrão original.
Relação com o UVC 1.5 Digital Window Control
Os novos controles MSXU de janela digital abaixo executam uma função quase idêntica à CT_DIGITAL_WINDOW_CONTROL encontrada na especificação de classe UVC 1.5 sob Seção 4.2.2.1.19 Controle de janela digital.
O UVC 1.5 Class specification.pdf pode ser baixado no USB Video Class specification site.
No entanto, existem algumas diferenças importantes.
Alongamento
O CT_DIGITAL_WINDOW_CONTROL conforme especificado permite que um aplicativo defina a janela para um conjunto arbitrário de coordenadas que são limitadas apenas pelos valores GET_MIN, GET_MAX e GET_RES. Para encaixar este campo de visão dentro da janela de saída, este comportamento exige que a câmara rejeite pedidos SET_CUR que deveriam ser considerados legais, ou implemente a reamostragem ou reescalonamento da imagem, o que poderia potencialmente distorcer a imagem horizontal ou verticalmente, ou seja, alterar a proporção.
Uma vez que a distorção é provavelmente indesejável, ela pode ser evitada em uma implementação CT_DIGITAL_WINDOW_CONTROL rejeitando tais solicitações, mas em vez de o controle conter tal ambiguidade, o controle Digital Window MSXU mantém o campo de visão na proporção da resolução de saída. Portanto, o reescalonamento não é um recurso ou uma opção neste controle MSXU.
Auto Face-Framing
O CT_DIGITAL_WINDOW_CONTROL não tem nenhum conceito de rastreamento facial. Por outro lado, o CT_REGION_OF_INTEREST_CONTROL tem esse conceito, mas este é usado principalmente para detetar, relatar e potencialmente atualizar a região de interesse dos controles 3A. Em teoria, CT_REGION_OF_INTEREST_CONTROL poderia ser utilizado se fosse implementado como um controle AutoUpdate, o que permitiria que um driver de câmera aproveitasse esse controle para deslocar, inclinar ou ampliar o CT_DIGITAL_WINDOW_CONTROL em sincronia.
Este novo controle permite o controle direto do rastreamento facial para ajustar o campo de visão inclinando, movendo ou ampliando digitalmente para manter o máximo de rosto visível quanto for prático. Além disso, o rastreamento facial usado neste controle permanece independente de qualquer região de controle de interesse.
O método de rastreamento facial depende da implementação.
Metadados por quadro
O UVC 1.5 original não tem um conceito de metadados por quadro. A Microsoft estendeu a especificação UVC para suportar metadados incorporados nos cabeçalhos de carga útil dos frames. A habilitação desse suporte pode ser feita através do controle MSXU_CONTROL_METADATA.
Além disso, o CT_DIGITAL_WINDOW_CONTROL não especifica se o controle é ou não síncrono ou assíncrono ou atualização automática. Além disso, o controlo inclui informações de passos usadas para a animação da mudança pela própria câmara. Isso implica que os movimentos de pan, tilt e zoom digitais podem levar uma quantidade significativa de tempo para serem concluídos. No entanto, como o controle teria sido definido para novas coordenadas, não está claro quanto tempo levaria para ser concluído e quando ou como informaria que a transição está feita. Pior ainda, não há informação sobre em que parte do campo de visão o quadro atual se origina.
Essa ambiguidade poderia ser resolvida com metadados por quadro injetados pela câmera, mas não é possível exigir que CT_DIGITAL_WINDOW_CONTROL suporte metadados por quadro diretamente, uma vez que os metadados por quadro estão além do escopo da especificação UVC.
Proporções
Não está claro ou indefinido como CT_DIGITAL_WINDOW_CONTROL lida com diferentes proporções. Para cortar o campo de visão corretamente, os valores de GET_DEF e GET_CUR relatados pelo controle UVC 1.5 precisariam ser alterados para corresponder ao aspeto atual após cada sonda/confirmação. Para lidar com isso corretamente, o CT_DIGITAL_WINDOW_CONTROL deve ser um controle AutoUpdate e o driver precisaria não armazenar em cache o resultado GET_DEF, mas em vez disso, consultar esse valor novamente para cada resolução exposta pela câmera.
Essa complexidade pode criar problemas de descoberta ao tentar mapear o controle de janela digital para uma resolução específica. Talvez você não saiba com antecedência qual parte do campo de visão do sensor a câmera usaria por padrão até executar uma sonda ou confirmar em todos os tipos de mídia suportados pela câmera. Isso apresenta problemas potenciais na determinação de quaisquer valores associados à resolução de um alpendre, uma vez que esses valores dependem do campo de visão do sensor normalmente utilizado em relação ao formato, comparado ao campo de visão total disponível no sensor.
Funcionalidade
Digital Window está relacionado a vários controles existentes:
Panela
Inclinação
Zoom
Se a câmera usa implementações digitais para qualquer um desses controles, eles devem alterar os valores relatados pelo Digital Window para corresponder ao mesmo campo de visão. Da mesma forma, Digital Window deve alterar os valores relatados por esses controles. Todas as implementações digitais desses controles devem ser atualizadas umas às outras para permanecerem sincronizadas.
A Microsoft não define a relação entre esses controles e apenas que o último controle de conjunto tem precedência.
Regiões de Interesse
Como a Janela Digital altera o campo de visão aparente (FOV), as coordenadas selecionadas através de qualquer controle de região de interesse (ROI) devem ser redefinidas para seus padrões sempre que um SET for emitido para esse controle. A lista de controles de ROI atuais inclui:
KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_PROPERTY_ID
KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_CONFIGCAPS / KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL
Além disso, esses controles de região de interesse especificam suas regiões em relação à janela de saída, de modo que as coordenadas especificadas são sempre um retângulo no campo de visão atual. Como o controle Janela Digital modifica o campo de visão atual, o retângulo da Região de Interesse deve ser remapeado pela câmera para que caiba dentro da Janela Digital atual. Por exemplo, se a Janela Digital atual tiver um (OriginX, OriginY) de (0,0, 0,0) e um WindowSize de 0,5 e se uma Região de Interesse de (0,0, 0,0), (0,5, 0,5) for especificada, a câmera deverá remapear o retângulo da Região de Interesse para os pixels correspondentes a (0,0, 0,0), (0,25, 0,25) no campo de visão padrão. Isso deve ser análogo e consistente com o comportamento aparente dos controles pan, tilt e zoom com esses controles de região de interesse.
Streaming
Como os valores válidos disponíveis da Janela Digital dependem da proporção atual, a câmera deve ter selecionado um tipo de mídia e uma interface de streaming para que ela imponha o MinWindowSize.
Valores informativos
O NonUpscalingWindowSize relatado também é comunicado por resolução, mas serve apenas para fornecer informações à aplicação. Esse valor informa à aplicação qual valor definir como o WindowSize para evitar qualquer upscaling da imagem de origem. Isso permite que o aplicativo capture uma imagem nos limites da faixa de fidelidade do sensor da câmera.
Atributos de metadados
Se a câmara anunciar MSXU_CONTROL_DIGITALWINDOW, MSXU_CONTROL_DIGITALWINDOW_CONFIG e tiver definido um tamanho de buffer diferente de zero em MSXU_CONTROL_METADATA, a câmara deve emitir o atributo MF_CAPTURE_METADATA_DIGITAL_WINDOW para cada fotograma. Ele pode fornecer isso por meio de uma MFT de dispositivo ou incluindo um atributo MetadataId_DigitalWindow (valor de 7) no buffer de metadados brutos. Como incluir atributos de metadados é descrito mais detalhadamente na Seção 2.2.3.1 Microsoft Standard-format Metadata.
Esses metadados são usados para relatar qual janela digital foi aplicada à amostra atual. Ele faz isso inicializando o KSCAMERA_METADATA_ITEMHEADER com o valor MetadataId_DigitalWindow e o tamanho da estrutura e copiando os valores aplicados de OriginX, OriginY e WindowSize do controle de janela digital para uma estrutura de KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING associada.
Ver também
Secção 2.2.2.11 Controlo Digital de Janelas
Seção 2.2.2.12 Controlo de Configuração de Janela Digital
Metadados em formato padrão da Microsoft Seção 2.2.3.1
Especificação da classe de vídeo USB
KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW_CONFIGCAPS
KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW
KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPS
KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPSHEADER