Compartilhar via


Solução de problemas de teste de device.streaming

Para solucionar problemas que ocorrem com testes Device.Streaming, siga estas etapas:

  1. Examine os seguintes tópicos do Windows Hardware Lab Kit (Windows HLK):
  2. Examine as notas de versão do Windows HLK para problemas de teste atuais.
  3. Para uma falha de teste, procure informações utilizáveis no log de teste do Windows HLK Studio. Se você encontrar informações utilizáveis, resolve o problema e execute novamente o teste.
  4. Use o provedor Microsoft.Windows.CameraDebug TraceLogging para levar logs para solucionar problemas de erro do pipeline do driver para a câmera.

Informações específicas sobre testes do HMFT

Os testes de decodificação e codificação do HMFT (Hardware Media Foundation Transform) exigem o seguinte:

  • Conteúdo suplementar para testes do Windows HLK para testes multimídia HMFT: baixe e instale o conteúdo suplementar para testes HLK do Windows para testes multimídia HMFT do Centro de Desenvolvimento do Windows. Para obter mais informações sobre como instalar e configurar o conteúdo suplementar, consulte Pré-requisitos de teste do HMFT.

  • Arquivos de conteúdo padrão incluídos no Windows HLK.

Se o conteúdo complementar não estiver disponível nos computadores cliente, verifique se o parâmetro ContentSource está sendo configurado corretamente quando os testes hmft são executados.

Solução de problemas de capturas de vídeo da webcam

Erro Descrição Solução/solução alternativa

Durante a instalação, o teste não pode localizar a ROI (Região de Interesse).

O teste procura marcadores ROI (círculos preto e branco) em locais conhecidos no teste. Se o teste não puder identificar marcadores ROI, o teste não poderá ser executado corretamente. A falha ao detectar ROI pode ser causada por uma câmera mal direcionada ou captura de vídeo inutilizável da câmera (por exemplo, a sala está muito escura).

Reposicione a câmera de acordo com o procedimento de teste e verifique se a câmera fornece uma imagem utilizável em condições de iluminação de teste.

Durante a instalação, o ROI não se encaixa no modo de exibição da câmera.

O teste procura marcadores ROI (círculos preto e branco) em locais conhecidos no teste. Se o teste não puder identificar marcadores ROI, o teste não poderá ser executado corretamente. Um campo menor de câmeras de exibição (por exemplo, câmeras traseiras) pode precisar ser posicionado mais de 0,5 m do destino de teste para capturar o ROI necessário.

Reposicione a câmera e confirme se a câmera fornece uma imagem utilizável em condições de iluminação de teste. Para evitar uma medição imprecisa do campo de requisito de exibição, insira a nova distância no aplicativo de teste se você ajustar a posição.

Possíveis causas raiz de falha e recomendações para aprimoramento para capturas de vídeo da webcam

Acuidade da imagem

Resolução espacial

A resolução espacial é medida usando a função de transferência de módulo (resposta de frequência espacial). Especificamente, a métrica MTF30 é usada, que é o número de ciclos/pixels pelos quais um MTF=0,3 é alcançado.

Quando o MTF30 está abaixo de 0,3, a imagem é muito macia ou difusa. Embora esse problema possa ser causado pela ótica de baixa qualidade, geralmente é causado pelo mau processamento de sinal de imagem (dimensionamento de imagens, demosaicing etc.). Quando o MTF30 está acima de 0,8, a imagem pode ser muito alias. Esse problema geralmente é causado pelo processamento de sinais de imagem de baixa qualidade, especialmente o dimensionamento (por exemplo, interpolação de vizinho mais próxima em vez de interpolação biúbica com anti-aliasing).

Intervalo de foco (profundidade do campo)

O requisito de intervalo de foco é que a câmera se concentre em objetos a uma distância de 0,3 m até o infinito, independentemente de o foco automático ser usado ou não. A métrica de resolução espacial MTF30 determina o intervalo de foco. Se essa métrica falhar em uma câmera de foco manual, um problema de design poderá ser a causa; por exemplo, a profundidade teórica do campo é > de 0,3 m para infinito quando focada em uma distância de destino de 0,5 m para notebooks/tablets ou 0,7 m para todos-em-um. Se a distância de destino estiver correta, talvez seja necessário alterar a ótica para obter a profundidade correta do campo.

Se uma lente de foco automático for usada e falhar nessa métrica, um problema no algoritmo de foco automático será a causa mais provável.

Ruído

Taxa de sinal espacial para ruído

O ruído espacial mede a variação espacial em uma única imagem usando um patch cinza neutro (densidade de 0,7) no gráfico de teste. Se essa métrica falhar, provavelmente será devido a um sensor de baixa qualidade (sensibilidade insuficiente) ou à desnudência de imagem insuficiente. Os sensores de imagem devem ser selecionados com um SNR10 (o nível lux necessário para alcançar um SNR=10 em um patch de densidade de 0,7 sem nenhum desnudamento) de < 50 lux. Algum nível de desnudência de imagem é aceitável, mas não deve prejudicar significativamente a redução da textura. Um método de medição da acutância de textura (independente do Windows HLK) é fornecido na Especificação de Captura de Vídeo do Logotipo do Lync (Rev G). Para obter mais informações sobre as especificações do Logotipo do Lync, consulte Especificações de teste de periféricos USB e PC do Lync.

Taxa de sinal temporal para ruído

O ruído temporal mede a variação temporal em duas imagens usando um patch cinza neutro (densidade de 0,7) no gráfico de teste. Se essa métrica falhar, provavelmente será devido a um sensor de baixa qualidade (sensibilidade insuficiente), AGC (ganho automático ruim) e AEC (controle de exposição automática), controle de frequência de linha de energia insatisfatório ou desnudência de imagem insuficiente. Um controle AEC/AGC instável pode causar cintilação visível. O controle de frequência da linha de alimentação é usado para detectar iluminação de 50/60 Hz. Ajustar a exposição; se isso não funcionar bem, cintilar (usando cintilação sem interrupção) será aparente no vídeo.

Qualidade da cor

Luminância para um patch cinza neutro (densidade de 0,7)

O controle de ganho e exposição automático deve produzir uma imagem para que o patch cinza neutro no gráfico de teste tenha uma luminância de 128 +/- 40 níveis de cinza. Se isso falhar e a luminância for < 88, será devido a um AEC/AGC ruim ou a um sensor de imagem com baixa sensibilidade. Na maioria dos casos, você pode resolve o problema ajustando o AEC/AGC. Se a luminância for > 168, também existirá um problema com a AEC/AGC.

Precisão da cor

A precisão da cor é medida usando o máximo e a média ΔC₀₀ em relação às cores conhecidas no gráfico de teste ColorChecker. Quando essa métrica falha, pode ser um problema com o balanceamento de branco ou a uniformidade de cores, que pode ser aprimorada ajustando o processamento do sinal de imagem.

Gama

Gama mede a operação não linear usada para codificar valores de luminância ou tristimulus em imagens de vídeo ou imagens paradas. Quando o gama é > 0,75, as imagens podem parecer muito saturadas; quando o gama é < 0,4, as imagens podem parecer sub-saturadas. Ambos os problemas podem ser corrigidos ajustando o processamento gama no processamento do sinal de imagem.

Geometry

Campo de exibição vertical

O campo vertical do requisito de exibição para câmeras voltadas para o usuário é ≥ 35INVALID USO DE SÍMBOLOS e para câmeras traseiras é ≥ 25INVALID USO DE SÍMBOLOS. Quando esse teste falha, pode ser devido ao corte de imagem (não usando o sensor de imagem inteiro), que pode ser corrigido no processamento de sinal de imagem. No entanto, o problema é mais provável devido ao design da lente. Nesse caso, uma lente nova ou modificada é necessária.

Timing

Taxa de quadros

A taxa de quadros de vídeo deve ser ≥ 14 FPS em 20 lux de luz e ≥ 29 FPS em 80 lux de luz. Se a taxa de quadros for menor do que esses requisitos, você geralmente poderá corrigi-la ajustando a exposição automática e ganhando controle.

Latência

A latência de vídeo mede o tempo para fótons na câmera para fótons fora da tela. O requisito de latência de vídeo é ≤ 80ms para câmeras MIPI e ≤ 120ms para câmeras USB; Essa falha geralmente ocorre devido a baixas taxas de quadros ou processamento de sinal de imagem que usa um ou mais buffers de quadro. Você pode resolve ambos os problemas melhorando o processamento de sinal de imagem da câmera.

Sincronização de áudio/vídeo

A sincronização de áudio/vídeo mede a diferença de tempo entre o áudio capturado e o vídeo capturado. Uma falha dessa métrica geralmente é causada por falha de latência de vídeo ou latência de áudio. Para obter mais informações, consulte Communications Audio Fidelity Test (System, Manual).

Hora de capturar e entregar a primeira foto ou quadro de vídeo

Os primeiros quadros de vídeo e foto devem ser capturados dentro de 500ms de iniciar o vídeo ou tirar uma foto. O motivo mais comum para falhar nesse requisito é a exposição automática lenta e obter convergência de controle, que você pode melhorar ajustando o AEC/AGC.

Tempo para entregar uma foto em solicitações subsequentes (estado estável)

As imagens de fotos subsequentes devem ser capturadas dentro de 250ms (sem flash) e 500ms (com flash). Um motivo comum para falhar nesse requisito é a exposição automática lenta e obter convergência de controle, que você pode melhorar ajustando o AEC/AGC.

Tempo para alterar resoluções (qualquer tipo de mídia)

O tempo para alterar as resoluções (por exemplo, 720p a 360p) deve ser ≤ 250ms. Um motivo comum para falhar nesse requisito é a exposição automática lenta e obter convergência de controle, que você pode melhorar ajustando o AEC/AGC.

Hora de trocar de câmera

O tempo para alterar as câmeras (por exemplo, da câmera frontal para a câmera traseira) deve ser ≤ 750ms. Um motivo comum para falhar nesse requisito é a exposição automática lenta e obter convergência de controle, que você pode melhorar ajustando o AEC/AGC.

Sem falhas/tremulação

O vídeo será livre de falhas se tiver um tempo máximo entre quadros ≤ 133ms a 20 lux, tempo máximo entre períodos ≤ 66ms a 80 lux e tremulação ≤ 7ms (medido no renderizador de vídeo). A causa mais comum para falha nos tempos máximos entre quadros e tremulação é não atingir as taxas de quadros de destino. Por exemplo, uma câmera de vídeo de 24 FPS falhará nos requisitos máximos de tempo entre quadros e tremulação. Nesses casos, você deve ajustar a taxa de quadros para atingir 15 FPS a 20 lux e 30 FPS a 80 lux.

Outro

Uso da CPU

Quando o sistema está capturando e renderizando vídeos, o uso da CPU deve ser ≤ 5%. Uma causa comum de falha é quando a CPU é usada para processamento de sinal de imagem. Todo ISP crítico deve ser descarregado para não usar a CPU ou otimizado para usar ≤ 5%.

Solução anti-cintilação

A geração de imagens na iluminação de 50 ou 60 Hz com o modo de exposição incorreta (frequência de linha de energia) pode resultar em cintilação que degrada significativamente o SNR. O controle manual de frequência de linha de alimentação é necessário e testado. A falha mais comum é não dar suporte ao controle manual de frequência de linha de alimentação.

Microsoft.Windows.CameraDebug TraceLogging

  • Nome:
    • Microsoft.Windows.CameraDebug
  • GUID:
    • {9EE22E19-9672-4625-A9FF-C2B711AD923F}
  • Eventos:
    • DriverCriticalError
    • DriverError

Atualmente, esse provedor só é usado para registrar erros críticos durante as transições de pino da câmera. A tabela a seguir resume a estrutura e o conteúdo do evento.

Componente ErrorCode ProcessId ThreadId OsErrorCode
(opcional)

Explicação de qual funcionalidade causou esse evento, String.
Os valores possíveis são:
- Driver::Active
- Driver::P ause
- Driver::InActive

Erro relatado pelo driver original, HRESULT

ID do processo em que ocorreu o erro

ID do thread em que ocorreu o erro

Se o erro relatado pelo driver for convertido em um erro diferente, HRESULT

Gravando e exibindo eventos

Para obter diretrizes adicionais, consulte Registrar e exibir eventos de rastreamento de log.

O exemplo a seguir é um arquivo .wprp para capturar eventos do provedor Microsoft.Windows.CameraDebug TraceLogging:

<?xml version="1.0" encoding="utf-8"?>
<WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" Copyright="Microsoft Corporation" Company="Microsoft Corporation">
  <Profiles>
    <EventCollector Id="EventCollector_WindowsCameraDebugTraceLoggingProvider" Name="WindowsCameraDebugTraceLoggingProvider">
      <BufferSize Value="64" />
      <Buffers Value="4" />
    </EventCollector>

    <EventProvider Id="EventProvider_WindowsCameraDebugTraceLoggingProvider" Name="9EE22E19-9672-4625-A9FF-C2B711AD923F" />

    <Profile Id="WindowsCameraDebugTraceLoggingProvider.Verbose.File" Name="WindowsCameraDebugTraceLoggingProvider" Description="WindowsCameraDebugTraceLoggingProvider" LoggingMode="File" DetailLevel="Verbose">
      <Collectors>
        <EventCollectorId Value="EventCollector_WindowsCameraDebugTraceLoggingProvider">
          <EventProviders>
            <EventProviderId Value="EventProvider_WindowsCameraDebugTraceLoggingProvider" />
          </EventProviders>
        </EventCollectorId>
      </Collectors>
    </Profile>

    <Profile Id="WindowsCameraDebugTraceLoggingProvider.Light.File" Name="WindowsCameraDebugTraceLoggingProvider" Description="WindowsCameraDebugTraceLoggingProvider" Base="WindowsCameraDebugTraceLoggingProvider.Verbose.File" LoggingMode="File" DetailLevel="Light" />
    <Profile Id="WindowsCameraDebugTraceLoggingProvider.Verbose.Memory" Name="WindowsCameraDebugTraceLoggingProvider" Description="WindowsCameraDebugTraceLoggingProvider" Base="WindowsCameraDebugTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Verbose" />
    <Profile Id="WindowsCameraDebugTraceLoggingProvider.Light.Memory" Name="WindowsCameraDebugTraceLoggingProvider" Description="WindowsCameraDebugTraceLoggingProvider" Base="WindowsCameraDebugTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Light" />

  </Profiles>
</WindowsPerformanceRecorder>

Testes de Device.Streaming

Solução de problemas do Windows HLK