Device.Streaming 테스트 문제 해결
Device.Streaming 테스트에서 발생하는 문제를 해결하려면 다음 단계를 수행합니다.
- 다음 Windows HLK(Windows Hardware Lab Kit) 항목을 검토합니다.
- 현재 테스트 문제에 대한 Windows HLK 릴리스 정보를 검토합니다.
- 테스트 실패의 경우 Windows HLK Studio 테스트 로그에서 사용 가능한 정보를 찾습니다. 사용 가능한 정보를 찾으면 문제를 해결하고 테스트를 다시 실행합니다.
- Microsoft.Windows.CameraDebug TraceLogging 공급자는 드라이버에서 카메라 파이프라인으로의 오류를 해결하기 위해 로그를 가져옵니다.
HMFT 테스트에 대한 특정 정보
HMFT(하드웨어 미디어 파운데이션 변환) 디코딩 및 인코딩 테스트에는 다음이 필요합니다.
HMFT 멀티미디어 테스트용 Windows HLK 테스트에 대한 추가 콘텐츠: Windows 개발자 센터에서 HMFT 멀티미디어 테스트용 Windows HLK 테스트에 대한 추가 콘텐츠를 다운로드하고 설치합니다. 추가 콘텐츠 설치 및 구성에 대한 자세한 내용은 HMFT 테스트 필수 구성 요소를 참조하세요.
Windows HLK에 포함된 표준 콘텐츠 파일.
클라이언트 컴퓨터에서 추가 콘텐츠를 사용할 수 없는 경우 HMFT 테스트를 실행할 때 ContentSource 매개 변수가 올바르게 구성되었는지 확인합니다.
웹캠 비디오 캡처 문제 해결
오류 | 설명 | 솔루션/해결 방법 |
---|---|---|
설치하는 동안 테스트에서 ROI(관심 영역)를 찾을 수 없습니다. |
이 테스트는 테스트의 알려진 위치에서 ROI(관심 영역) 마커(흑백 원)를 찾습니다. 테스트에서 ROI 마커를 식별할 수 없으면 테스트를 올바르게 실행할 수 없습니다. ROI 검색 실패는 조준이 잘못된 카메라 또는 카메라에서 사용할 수 없는 비디오 캡처(예: 방이 너무 어두움)로 인해 야기될 수 있습니다. |
테스트 절차에 따라 카메라 위치를 변경하고 카메라가 테스트 조명 조건에서 사용 가능한 이미지를 제공하는지 확인합니다. |
설치하는 동안 ROI가 카메라 보기에 맞지 않습니다. |
이 테스트는 테스트의 알려진 위치에서 ROI(관심 영역) 마커(흑백 원)를 찾습니다. 테스트에서 ROI 마커를 식별할 수 없으면 테스트를 올바르게 실행할 수 없습니다. 필요한 ROI를 캡처하려면 시야가 더 작은 카메라(예: 후방 카메라)를 테스트 대상에서 0.5m보다 더 멀리 배치해야 할 수 있습니다. |
카메라 위치를 변경하고 테스트 조명 조건에서 카메라가 사용 가능한 이미지를 제공하는지 확인합니다. 시야 요구 사항에 대한 부정확한 측정을 방지하려면 위치를 조정할 때 테스트 애플리케이션에 새 거리를 입력합니다. |
잠재적 오류 근본 원인 및 웹캠 비디오 캡처 개선을 위한 권장 사항
이미지 정밀도
공간 해상도
공간 해상도는 모듈러스 전송 함수(공간 주파수 반응)를 사용하여 측정됩니다. 특히 MTF=0.3이 달성되는 주기/픽셀 수인 메트릭 MTF30이 사용됩니다.
MTF30이 0.3 미만이면 이미지가 너무 부드럽거나 흐릿합니다. 이 문제는 저품질 광학 장치로 인해 발생할 수 있지만 일반적으로 저품질 이미지 신호 처리(이미지 스케일링, 디모자이싱 등)로 인해 발생합니다. MTF30이 0.8을 초과하면 이미지가 심하게 앨리어싱될 수 있습니다. 이 문제는 종종 저품질 이미지 신호 처리, 특히 스케일링(예: 앤티앨리어싱을 사용한 바이큐빅 보간 대신 가장 가까운 인접 보간)으로 인해 발생합니다.
초점 범위(필드 깊이)
초점 범위 요구 사항은 카메라가 자동 초점 사용 여부에 관계없이 0.3m에서 무한대까지의 거리에서 개체에 초점을 맞추는 것입니다. MTF30 공간 해상도 메트릭은 초점 범위를 결정합니다. 수동 초점 카메라에서 이 메트릭이 실패하는 경우 디자인 문제가 원인일 수 있습니다. 예를 들어 노트북/태블릿의 경우 대상 거리 0.5m 또는 올인원의 경우 0.7m에 초점을 맞춘 경우 이론적 깊이는 0.3m에서 무한대까지입니다. 대상 거리가 올바른 경우 정확한 필드 깊이를 얻기 위해 광학을 변경해야 할 수 있습니다.
자동 초점 렌즈를 사용하고 이 메트릭에 실패하는 경우 자동 초점 알고리즘의 문제가 가장 큰 원인입니다.
노이즈
공간 신호 대 노이즈 비율
공간 노이즈는 테스트 차트에서 중성 회색(0.7 밀도) 패치를 사용하여 단일 이미지의 공간 변화를 측정합니다. 이 메트릭이 실패하는 경우 저품질 센서(민감도 부족) 또는 이미지 노이즈 제거 부족으로 인해 발생할 가능성이 큽니다. SNR10(노이즈 제거 없이 0.7 밀도 패치에서 SNR=10을 달성하는 데 필요한 lux 수준)이 50lux 미만인 이미지 센서를 선택해야 합니다. 어느 정도의 이미지 노이즈 제거가 허용되지만 텍스처 정확도를 크게 저하시키지 않아야 합니다. Lync Logo 비디오 캡처 사양(Rev G)에 텍스처 정확도 측정 방법(Windows HLK와 독립적)이 제공됩니다. Lync 로고 사양에 대한 자세한 내용은 USB 주변 장치 및 Lync PC 테스트 사양을 참조하세요.
임시 신호 대 노이즈 비율
임시 노이즈는 테스트 차트에서 중성 회색(0.7 밀도) 패치를 사용하여 두 이미지의 임시 변형을 측정합니다. 이 메트릭이 실패하는 경우 저품질 센서(민감도 부족), AGC(자동 게인) 불량 및 AEC(자동 노출 제어) 불량, 전력선 주파수 제어 불량 또는 이미지 노이즈 제거 부족으로 인해 발생할 가능성이 큽니다. 불안정한 AEC/AGC 제어로 인해 깜박임이 나타날 수 있습니다. 전력선 주파수 제어는 50/60Hz 조명을 감지하는 데 사용됩니다. 노출을 조정합니다. 이것이 제대로 작동하지 않으면 비디오에서 깜박임(롤링 깜박임 사용)이 분명하게 나타납니다.
색상 품질
중성 회색 패치의 광도(0.7 밀도)
자동 게인 및 노출 제어는 테스트 차트의 중성 회색 패치가 128 +/- 40 회색 수준의 광도를 가지도록 이미지를 생성해야 합니다. 이것이 실패하고 광도가 88 미만으로 나타나는 경우 AEC/AGC 또는 이미지 센서 불량으로 인해 민감도가 낮아집니다. 대부분의 경우 AEC/AGC를 조정하여 문제를 해결할 수 있습니다. 광도가 168보다 크면 AEC/AGC에도 문제가 있습니다.
색 정확도
색 정확도는 ColorChecker 테스트 차트의 알려진 색과 관련하여 최댓값 및 평균 ΔC₀₀을 사용하여 측정됩니다. 이 메트릭이 실패하면 화이트 밸런싱 또는 색 균일성에 문제가 있을 수 있으며, 둘 다 이미지 신호 처리를 조정하여 개선할 수 있습니다.
감마
감마는 비디오 또는 스틸 이미지에서 광도 또는 삼자극치 값을 코딩하는 데 사용되는 비선형 연산을 측정합니다. 감마가 0.75보다 크면 이미지가 너무 포화된 것처럼 보일 수 있습니다. 감마가 0.4보다 작으면 이미지가 덜 포화된 것처럼 보일 수 있습니다. 이미지 신호 처리에서 감마 처리를 조정하여 두 문제를 모두 해결할 수 있습니다.
기하 도형
세로 시야
사용자 지향 카메라에 대한 세로 시야 요구 사항은 기호의 ≥ 35INVALID USE OF SYMBOLS이고 후방 카메라의 경우 ≥ 25INVALID USE OF SYMBOLS입니다. 이 테스트가 실패하면 이미지 자르기(전체 이미지 센서를 사용하지 않음)로 인한 것일 수 있으며 이미지 신호 처리에서 수정할 수 있습니다. 그러나 이 문제는 렌즈 디자인으로 인해 발생할 가능성이 높습니다. 이 경우 새 렌즈 또는 수정된 렌즈가 필요합니다.
타이밍
프레임 속도
비디오 프레임 속도는 20lux 조명에서 ≥ 14FPS이고, 80lux 조명에서 ≥ 29FPS여야 합니다. 프레임 속도가 이러한 요구 사항보다 작은 경우 일반적으로 자동 노출 및 게인 제어를 조정하여 수정할 수 있습니다.
대기 시간
비디오 대기 시간은 광자가 카메라로 들어오는 시간부터 광자가 디스플레이에서 나가는 시간까지를 측정합니다. 비디오 대기 시간 요구 사항은 MIPI 카메라의 경우 ≤ 80ms, USB 카메라의 경우 ≤ 120ms입니다. 이 오류는 프레임 속도가 낮거나 하나 이상의 프레임 버퍼를 사용하는 이미지 신호 처리로 인해 발생하는 경우가 많습니다. 카메라의 이미지 신호 처리를 개선하여 이러한 두 가지 문제를 모두 해결할 수 있습니다.
오디오/비디오 동기화
오디오/비디오 동기화는 캡처된 오디오와 캡처된 비디오 간의 시간 차이를 측정합니다. 이 메트릭의 오류는 비디오 대기 시간 또는 오디오 대기 시간의 오류로 인해 발생하는 경우가 많습니다. 자세한 내용은 통신 오디오 충실도 테스트(시스템, 수동)를 참조하세요.
첫 번째 사진 또는 비디오 프레임을 캡처하고 전달하는 시간
첫 번째 비디오 및 사진 프레임은 비디오를 시작하거나 사진을 찍은 후 500ms 이내에 캡처해야 합니다. 이 요구 사항이 실패하는 가장 일반적인 이유는 느린 자동 노출 및 게인 제어 수렴 때문으로, 이러한 문제는 AEC/AGC를 조정하여 개선할 수 있습니다.
후속 요청에서 사진을 전달하는 시간(안정 상태)
후속 사진 이미지는 250ms(플래시 사용 안 함) 및 500ms(플래시 사용) 내에서 캡처해야 합니다. 이 요구 사항이 실패하는 일반적인 이유는 느린 자동 노출 및 게인 제어 수렴 때문으로, 이러한 문제는 AEC/AGC를 조정하여 개선할 수 있습니다.
해상도를 변경하는 시간(모든 미디어 유형)
해상도를 변경하는 시간(예: 720p~360p)은 ≤ 250ms여야 합니다. 이 요구 사항이 실패하는 일반적인 이유는 느린 자동 노출 및 게인 제어 수렴 때문으로, 이러한 문제는 AEC/AGC를 조정하여 개선할 수 있습니다.
카메라를 전환하는 시간
카메라를 변경(예: 전방 카메라에서 후방 카메라로)하는 시간은 ≤ 750ms여야 합니다. 이 요구 사항이 실패하는 일반적인 이유는 느린 자동 노출 및 게인 제어 수렴 때문으로, 이러한 문제는 AEC/AGC를 조정하여 개선할 수 있습니다.
결함 없음/지터
비디오는 최대 프레임 간 시간이 20lux에서 ≤ 133ms이고, 80lux에서 ≤ 66ms이고, 지터가 ≤ 7ms(비디오 렌더러에서 측정)인 경우 결함이 없는 것입니다. 최대 프레임 간 시간과 지터 모두에서 문제가 발생하는 가장 일반적인 원인은 대상 프레임 속도를 달성하지 못하는 경우입니다. 예를 들어 24FPS 비디오 카메라는 최대 프레임 간 시간과 지터 요구 사항 모두에서 문제가 발생합니다. 이러한 경우 20lux에서 15FPS, 80lux에서 30FPS를 목표로 프레임 속도를 조정해야 합니다.
기타
CPU 사용량
시스템이 비디오를 캡처하고 렌더링하는 경우 CPU 사용량은 ≤ 5%여야 합니다. 오류의 일반적인 원인은 CPU가 이미지 신호 처리에 사용되는 경우입니다. CPU를 사용하지 않도록 모든 중요 ISP를 오프로드하거나 ≤ 5%를 사용하도록 최적화해야 합니다.
깜박임 방지 솔루션
잘못된 노출(전력선 주파수) 모드를 사용하여 50Hz 또는 60Hz 조명으로 촬영하면 SNR 성능이 크게 저하되는 깜박임이 발생할 수 있습니다. 수동 전력선 주파수 제어가 필요하고 테스트됩니다. 가장 일반적인 오류는 수동 전력선 주파수 제어를 지원하지 않는 경우입니다.
Microsoft.Windows.CameraDebug TraceLogging
- 이름:
- Microsoft.Windows.CameraDebug
- GUID:
- {9EE22E19-9672-4625-A9FF-C2B711AD923F}
- 이벤트:
- DriverCriticalError
- DriverError
현재 이 공급자는 카메라 핀 전환 중에 중요한 오류를 기록하는 데만 사용됩니다. 다음 표에는 이벤트 구조 및 콘텐츠가 요약되어 있습니다.
구성 요소 | 오류 코드 | ProcessId | 스레드 Id | OsErrorCode (선택 사항) |
---|---|---|---|---|
이 이벤트를 발생시킨 기능에 대한 설명입니다(문자열).
|
드라이버에서 보고한 원래 오류, HRESULT |
오류가 발생한 프로세스 ID |
오류가 발생한 스레드 ID |
드라이버에서 보고한 오류가 다른 오류로 변환되는 경우, HRESULT |
이벤트 기록 및 표시
추가 지침은 TraceLogging 이벤트 기록 및 보기를 참조하세요.
다음 예제는 Microsoft.Windows.CameraDebug TraceLogging 공급자 이벤트를 캡처하기 위한 .wprp 파일입니다.
<?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>