Solución de problemas de Device.Streaming Testing
Para solucionar problemas que se producen con las pruebas Device.Streaming, siga estos pasos:
- Revise los siguientes temas del Kit de laboratorio de hardware de Windows (Windows HLK):
- Revise las notas de la versión de Windows HLK para ver los problemas de prueba actuales.
- Para ver un error de prueba, busque información utilizable en el registro de pruebas de Windows HLK Studio. Si encuentra información utilizable, resuelva el problema y vuelva a ejecutar la prueba.
- Use el proveedor Microsoft.Windows.CameraDebug TraceLogging para tomar registros para solucionar el error de la canalización del controlador a la cámara.
Información específica sobre las pruebas hmft
Las pruebas de descodificación y codificación de Hardware Media Foundation Transform (HMFT) requieren lo siguiente:
Contenido complementario para pruebas HLK de Windows para pruebas multimedia HMFT: descargue e instale el contenido complementario para pruebas HLK de Windows para pruebas multimedia HMFT desde el Centro de desarrollo de Windows. Para obtener más información sobre cómo instalar y configurar el contenido complementario, consulte Requisitos previos de las pruebas de HMFT.
Archivos de contenido estándar incluidos con el HLK de Windows.
Si el contenido complementario no está disponible en los equipos cliente, asegúrese de que el parámetro ContentSource está configurando correctamente cuando se ejecuten las pruebas HMFT.
Solución de problemas de capturas de vídeo webcam
Error | Descripción | Solución o solución alternativa |
---|---|---|
Durante la instalación, la prueba no encuentra la región de interés (ROI). |
La prueba busca marcadores roi (círculos negros y blancos) en ubicaciones conocidas de la prueba. Si la prueba no puede identificar los marcadores de ROI, la prueba no se puede ejecutar correctamente. La falta de detección de ROI puede deberse a una cámara mal dirigida o a una captura de vídeo inutilizable desde la cámara (por ejemplo, la habitación es demasiado oscura). |
Cambie la posición de la cámara según el procedimiento de prueba y asegúrese de que la cámara proporciona una imagen utilizable en condiciones de iluminación de prueba. |
Durante la instalación, el ROI no encaja en la vista de la cámara. |
La prueba busca marcadores roi (círculos negros y blancos) en ubicaciones conocidas de la prueba. Si la prueba no puede identificar los marcadores de ROI, la prueba no se puede ejecutar correctamente. Es posible que sea necesario colocar un campo más pequeño de cámaras de vista (por ejemplo, cámaras traseras) más lejos de 0,5 m del destino de prueba para capturar el ROI necesario. |
Cambie la posición de la cámara y confirme que la cámara proporciona una imagen utilizable en condiciones de iluminación de prueba. Para evitar la medición inexacta del requisito de campo de vista, escriba la nueva distancia en la aplicación de prueba si ajusta la posición. |
Posibles causas principales del error y recomendaciones para mejorar las capturas de vídeo de cámara web
Agudeza de imagen
Resolución espacial
La resolución espacial se mide mediante la función de transferencia de módulos (respuesta de frecuencia espacial). En concreto, se usa la métrica MTF30, que es el número de ciclos/píxeles por los que se logra un MTF=0,3.
Cuando el MTF30 está por debajo de 0,3, la imagen es demasiado suave o aproximada. Aunque este problema puede deberse a una óptica de mala calidad, suele deberse a un mal procesamiento de señales de imagen (escalado de imágenes, demosaicing, etc.). Cuando MTF30 está por encima de 0,8, la imagen puede ser demasiado alias. Este problema suele deberse al procesamiento de señales de imagen de mala calidad, especialmente al escalado (por ejemplo, interpolación vecina más cercana en lugar de interpolación bi cúbica con suavizado de alias).
Intervalo de foco (profundidad del campo)
El requisito del intervalo de foco es que la cámara se centre en objetos a una distancia de 0,3 m a infinito, independientemente de si se usa o no el autofoco. La métrica de resolución espacial MTF30 determina el intervalo de foco. Si se produce un error en esta métrica en una cámara de enfoque manual, un problema de diseño podría ser la causa; por ejemplo, la profundidad teórica del campo es > de 0,3 m a infinito cuando se centra en una distancia de destino de 0,5 m para blocs de notas o tabletas, o hasta 0,7m para todos en uno. Si la distancia de destino es correcta, es posible que tenga que cambiar la óptica para lograr la profundidad correcta del campo.
Si se usa una lente de autofoco y se produce un error en esta métrica, un problema en el algoritmo de autofoco es la causa más probable.
Ruido
Relación de señal espacial con ruido
El ruido espacial mide la variación espacial en una sola imagen mediante una revisión de gris neutro (densidad 0,7) en el gráfico de pruebas. Si se produce un error en esta métrica, lo más probable es que se deba a un sensor de mala calidad (sensibilidad insuficiente) o a que no se descondice la imagen. Se deben seleccionar sensores de imagen que tengan un SNR10 (el nivel lux necesario para lograr un SNR=10 en una revisión de densidad de 0,7 sin desaconsejen) de < 50 lux. Es aceptable cierto nivel de desaplicación de imágenes, pero no debe degradar significativamente la acutancia de textura. Se proporciona un método de medición de la acutancia de texturas (independiente de Windows HLK) en la especificación de captura de vídeo del logotipo de Lync (Rev G). Para obtener más información sobre las especificaciones del logotipo de Lync, vea Periféricos USB y especificaciones de prueba de Pc lync.
Relación de señal temporal con ruido
El ruido temporal mide la variación temporal en dos imágenes mediante una revisión gris neutral (densidad 0,7) en el gráfico de pruebas. Si se produce un error en esta métrica, es más probable que se deba a un sensor de mala calidad (sensibilidad insuficiente), una ganancia automática deficiente (AGC) y el control de exposición automática (AEC), un control de frecuencia de línea de alimentación deficiente o un desaconseje de imagen insuficiente. Un control AEC/AGC inestable puede provocar parpadeo visible. El control de frecuencia de la línea de alimentación se usa para detectar iluminación de 50/60 Hz. Ajustar la exposición; si esto no funciona bien, parpadear (con parpadeo) es evidente en el vídeo.
Calidad de color
Luminancia para un parche gris neutro (densidad 0,7)
El control automático de ganancia y exposición debe producir una imagen para que el parche gris neutro en el gráfico de pruebas tenga una luminancia de 128 +/- 40 niveles grises. Si se produce un error y la luminancia es < 88, se debe a un mal AEC/AGC o a un sensor de imagen con baja sensibilidad. En la mayoría de los casos, puede resolver el problema mediante el ajuste de AEC/AGC. Si la luminancia es > 168, también existe un problema con el AEC/AGC.
Precisión del color
La precisión del color se mide utilizando el valor máximo y medio de ΔC₀₀ con respecto a los colores conocidos del gráfico de pruebas ColorChecker. Cuando se produce un error en esta métrica, puede ser un problema con el equilibrio de blanco o la uniformidad de color, ambos se pueden mejorar ajustando el procesamiento de señales de imagen.
Gamma
Gamma mide la operación no lineal que se usa para codificar valores de luminancia o tristimulus en vídeo o imágenes fijas. Cuando gamma es > 0,75, las imágenes pueden parecer demasiado saturadas; cuando gamma es < 0,4, las imágenes pueden parecer infra saturadas. Ambos problemas se pueden corregir ajustando el procesamiento gamma en el procesamiento de señal de imagen.
Geometría
Campo de vista vertical
El requisito de campo de vista vertical para las cámaras orientadas al usuario es ≥ 35INVALID USO DE SÍMBOLOS y para las cámaras traseras es ≥ 25INVALID USO DE SÍMBOLOS. Cuando se produce un error en esta prueba, puede deberse al recorte de imágenes (no mediante el sensor de imagen completo), que se puede corregir en el procesamiento de señales de imagen. Sin embargo, es más probable que el problema se deba al diseño de la lente. En este caso, se requiere una lente nueva o modificada.
Control de tiempo
Velocidad de fotogramas
La velocidad de fotogramas de vídeo debe ser ≥ 14 FPS en 20 lux de luz y ≥ 29 FPS en 80 lux de luz. Si la velocidad de fotogramas es menor que estos requisitos, normalmente puede corregirla ajustando la exposición automática y control de ganancia.
Latency
La latencia de vídeo mide el tiempo de fotones en la cámara para fotones fuera de la pantalla. El requisito de latencia de vídeo es ≤ 80 ms para cámaras MIPI y ≤ 120 ms para cámaras USB; Este error suele deberse a velocidades de fotogramas bajas o al procesamiento de señales de imagen que usa uno o más búferes de fotogramas. Puede resolver ambos problemas mejorando el procesamiento de señales de imagen de la cámara.
Sincronización de audio y vídeo
La sincronización de audio/vídeo mide la diferencia de tiempo entre el audio capturado y el vídeo capturado. Un error de esta métrica suele deberse a un error de latencia de vídeo o latencia de audio. Para obtener más información, vea Communications Audio Fidelity Test (System, Manual).
Tiempo para capturar y entregar la primera foto o fotograma de vídeo
Los primeros fotogramas de vídeo y foto deben capturarse en 500 ms a partir del inicio del vídeo o tomar una foto. La razón más común para fallar este requisito es una exposición automática lenta y obtener convergencia del control, que puede mejorar ajustando el AEC/AGC.
Tiempo para entregar una foto en solicitudes posteriores (estado estable)
Las imágenes de fotos posteriores deben capturarse en 250 ms (sin flash) y 500 ms (con flash). Una razón común para fallar este requisito es una exposición automática lenta y obtener convergencia de control, lo que puede mejorar ajustando el AEC/AGC.
Hora de cambiar las resoluciones (cualquier tipo de medio)
El tiempo para cambiar las resoluciones (por ejemplo, 720p a 360p) debe ser ≤ 250 ms. Un motivo común para fallar este requisito es una exposición automática lenta y obtener convergencia del control, lo que puede mejorar optimizando el AEC/AGC.
Hora de cambiar las cámaras
El tiempo para cambiar las cámaras (por ejemplo, desde la cámara frontal a la cámara trasera) debe ser ≤ 750 ms. Un motivo común para fallar este requisito es una exposición automática lenta y obtener convergencia del control, lo que puede mejorar optimizando el AEC/AGC.
Vibración o libre de problemas
El vídeo es libre de problemas si tiene un tiempo máximo entre fotogramas ≤ 133 ms a 20 lux, tiempo máximo entre fotogramas ≤ 66 ms a 80 lux y vibración ≤ 7 ms (medido en el representador de vídeo). La causa más común de errores en los tiempos máximos entre fotogramas y la vibración no es lograr las velocidades de fotogramas de destino. Por ejemplo, una cámara de vídeo de 24 FPS producirá un error en los requisitos máximos de tiempo entre fotogramas y vibración. En estos casos, debes ajustar la velocidad de fotogramas a 15 FPS a 20 lux y 30 FPS a 80 lux.
Otros
Uso de CPU
Cuando el sistema captura y representa vídeo, el uso de cpu debe ser ≤ 5 %. Una causa común de error es cuando se usa la CPU para el procesamiento de señales de imagen. Todos los ISP críticos deben descargarse para no usar la CPU ni optimizarse para usar ≤ 5 %.
Solución anti parpadeo
La creación de imágenes en iluminación de 50 o 60 Hz con el modo de exposición incorrecta (frecuencia de la línea de alimentación) puede dar lugar a un parpadeo que degrada significativamente SNR. Se requiere y se prueba el control manual de frecuencia de la línea de alimentación. El error más común no es admitir el control manual de frecuencia de la línea de alimentación.
Microsoft.Windows.CameraDebug TraceLogging
- Nombre:
- Microsoft.Windows.CameraDebug
- GUID:
- {9EE22E19-9672-4625-A9FF-C2B711AD923F}
- Eventos:
- DriverCriticalError
- DriverError
Actualmente, este proveedor solo se usa para registrar errores críticos durante las transiciones de patillas de cámara. En la tabla siguiente se resume la estructura de eventos y el contenido.
Componente | ErrorCode | ProcessId | ThreadId | OsErrorCode (opcional). |
---|---|---|---|---|
Explicación de qué funcionalidad provocó este evento, String.
|
Error notificado por el controlador original, HRESULT |
Identificador de proceso en el que se produjo el error |
Identificador de subproceso donde se produjo el error |
Si el error notificado por el controlador se traduce a un error diferente, HRESULT |
Grabación y visualización de eventos
Para obtener instrucciones adicionales, consulte Registrar y ver eventos de registro de seguimiento.
El ejemplo siguiente es un archivo .wprp para capturar eventos del proveedor 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>