디지털 창 개요
두 개의 새로운 디지털 창 컨트롤은 고해상도 네이티브 센서를 제공하는 카메라의 디지털 팬, 기울기 및 확대/축소 메커니즘을 제공하므로 애플리케이션은 카메라 센서에서 최적의 충실도를 유지하면서 회의실의 얼굴이나 마커 보드와 같은 개체에 자동으로 초점을 맞출 수 있습니다.
이를 통해 애플리케이션은 미디어 해상도를 변경할 필요 없이 이러한 개체의 더 높은 세부 이미지를 가져올 수 있습니다. 디지털 창 MSXU 컨트롤은 개별 파이프 또는 엔드포인트가 아닌 전체 카메라 센서를 대상으로 합니다.
디지털 창 제어 MSXU_CONTROL_DIGITALWINDOW
디지털 창 MSXU 컨트롤은 카메라가 스트리밍되는 동안 카메라의 보기 및 확대/축소 필드를 지정합니다. 이 컨트롤은 팬, 기울기 및 확대/축소를 대체할 수 있습니다. 이 컨트롤은 카메라가 적극적으로 스트리밍하는 동안에만 적용됩니다.
자세한 내용은 USB 비디오 클래스 1.5 사양에 대한 Microsoft 확장의 섹션 2.2.2.11 디지털 창 컨트롤을 참조하세요.
디지털 창 구성 컨트롤 MSXU_CONTROL_DIGITALWINDOW_CONFIG
디지털 창 구성 MSXU 컨트롤은 사용 가능한 모든 해상도가 지정된 카메라의 크기 조정 제한을 지정합니다. 해상도는 미디어 유형과 독립적이므로 동일한 디스플레이 해상도를 보급하는 두 미디어 유형이 하나의 기능으로 결합됩니다.
자세한 내용은 USB 비디오 클래스 1.5 사양에 대한 Microsoft 확장의 섹션 2.2.2.12 디지털 창 구성 컨트롤을 참조하세요.
구현 개요
다음 이미지는 카메라로 캡처한 일반적인 회의실 장면을 보여 줍니다.
이미지 센서는 클라이언트 애플리케이션으로 스트리밍되는 이미지보다 더 많은 것을 캡처합니다. 이 이미지는 빨간색 경계 상자에 표시됩니다. 주황색 경계 상자는 선택한 가로 세로 비율이 지정된 경우 카메라에서 캡처한 보기 필드를 보여 줍니다. 디지털 창 컨트롤의 경우 기본 경계 상자는 이 주황색 상자입니다. 측면에 지정된 좌표는 이 상자의 경계를 표시합니다. 센서의 출력은 이 상자의 출력 미디어 해상도에 맞게 잘리고 조정됩니다.
이미지에서 호출된 마커 보드는 관심 있는 개체입니다. 애플리케이션이 이 개체에 집중하려는 경우 이를 포함하도록 디지털 창을 설정할 수 있습니다.
녹색 경계 상자는 이 예제의 디지털 창 컨트롤을 통해 설정됩니다. 관심 있는 기본 개체인 표식 보드를 포함합니다. 사각형은 개체가 사각형이 아니거나 측면에서 볼 수 없거나 미디어 형식과 가로 세로 비율이 같지 않을 수 있으므로 관심 있는 개체 외부에 있는 데이터를 포함할 수 있습니다.
디지털 창은 출력 형식의 가로 세로 비율을 기본 카메라는 센서 출력을 일치하도록 스케일 업스케일합니다. 지정된 좌표는 항상 원래의 기본 경계 상자를 기준으로 합니다.
UVC 1.5 디지털 창 컨트롤과의 관계
아래의 새로운 디지털 창 MSXU 컨트롤은 섹션 4.2.2.1.19 디지털 창 컨트롤의 UVC 1.5 클래스 사양에 있는 CT_DIGITAL_WINDOW_CONTROL 거의 동일한 함수를 수행합니다.
UVC 1.5 클래스 specification.pdf USB 비디오 클래스 사양 웹 사이트에서 다운로드할 수 있습니다.
그러나 몇 가지 중요한 차이점이 있습니다.
스트레칭
지정된 CT_DIGITAL_WINDOW_CONTROL 애플리케이션에서 GET_MIN, GET_MAX 및 GET_RES 값으로만 제한된 임의의 좌표 집합으로 창을 설정할 수 있습니다. 출력 창 내에서 이 보기 필드에 맞게 이 동작을 수행하려면 카메라에서 법적 SET_CUR 요청을 거부하거나 가로 또는 세로로 이미지를 왜곡할 수 있는 이미지의 다시 샘플링 또는 크기 조정을 구현해야 합니다. 즉 가로 또는 세로 비율을 변경합니다.
이러한 요청을 거부하여 CT_DIGITAL_WINDOW_CONTROL 구현에서 왜곡을 피할 수 없으므로 이러한 모호성을 포함하는 것이 아니라 디지털 창 MSXU 컨트롤은 출력 해상도의 가로 세로 비율로 보기 필드를 기본. 따라서 다시 크기 조정은 이 MSXU 컨트롤의 기능이나 옵션이 아닙니다.
자동 얼굴 프레이밍
CT_DIGITAL_WINDOW_CONTROL 얼굴 추적 개념이 없습니다. 반면에 CT_REGION_OF_INTEREST_CONTROL 이러한 개념을 가지고 있지만 주로 3A 컨트롤의 관심 영역을 검색, 보고 및 업데이트하는 데 사용됩니다. 이론적으로는 자동 업데이트 컨트롤로 구현되는 경우 CT_REGION_OF_INTEREST_CONTROL 활용할 수 있으며, 이를 통해 카메라 드라이버는 해당 컨트롤을 활용하여 동기화된 CT_DIGITAL_WINDOW_CONTROL 이동, 기울기 또는 확대/축소할 수 있습니다.
이 새로운 컨트롤을 사용하면 얼굴 추적을 직접 제어하여 실제처럼 얼굴을 볼 수 있도록 디지털로 기울기, 이동 또는 확대/축소하여 시야를 조정할 수 있습니다. 또한 이 컨트롤에 사용되는 얼굴 추적은 관심 영역과 관계없이 다시 기본.
얼굴 추적 방법은 구현에 따라 달라집니다.
프레임별 메타데이터
원래 UVC 1.5에는 프레임당 메타데이터 개념이 없습니다. Microsoft는 프레임의 페이로드 헤더에 포함된 메타데이터를 지원하도록 UVC 사양을 확장했습니다. MSXU_CONTROL_METADATA 컨트롤을 통해 이 지원을 사용하도록 설정할 수 있습니다.
또한 CT_DIGITAL_WINDOW_CONTROL 컨트롤이 동기 또는 비동기인지 또는 자동 업데이트인지를 지정하지 않습니다. 또한 컨트롤에는 카메라 자체의 변경 애니메이션에 사용되는 단계별 정보가 포함됩니다. 이는 디지털 팬, 기울기 및 확대/축소를 완료하는 데 상당한 시간이 걸릴 수 있음을 의미합니다. 그러나 컨트롤이 새 좌표로 설정되었으므로 완료하는 데 걸리는 시간과 전환이 완료되었음을 다시 보고하는 시기 또는 방법이 불분명합니다. 더 나쁜 것은 보기 필드에서 현재 프레임이 시작되는 위치에 대한 정보가 없습니다.
이 모호성은 카메라에 의해 삽입된 프레임당 메타데이터로 해결할 수 있지만 프레임당 메타데이터가 UVC 사양의 범위를 벗어나므로 프레임당 메타데이터를 직접 지원하기 위해 CT_DIGITAL_WINDOW_CONTROL 요구할 수는 없습니다.
종횡비
CT_DIGITAL_WINDOW_CONTROL 다양한 가로 세로 비율을 처리하는 방법은 불분명하거나 정의되지 않습니다. 보기 필드를 올바르게 자르려면 UVC 1.5 컨트롤에서 보고한 GET_DEF 및 GET_CUR 값을 모든 프로브/커밋 후에 현재 측면과 일치하도록 변경해야 합니다. 이를 올바르게 처리하려면 CT_DIGITAL_WINDOW_CONTROL 자동 업데이트 컨트롤이어야 하며 드라이버는 GET_DEF 결과를 캐시하지 않고 카메라에 의해 노출되는 모든 해상도에 대해 이 값을 다시 쿼리해야 합니다.
이러한 복잡성으로 인해 디지털 창 컨트롤을 특정 해상도에 매핑하려고 할 때 검색 문제가 발생할 수 있습니다. 카메라에서 지원하는 모든 미디어 유형에서 프로브를 수행하거나 커밋하기 전까지는 센서의 시야에서 기본적으로 어떤 부분을 사용할지 미리 알 수 없습니다. 이는 센서에서 사용할 수 있는 총 뷰 필드를 기준으로 해당 형식에서 일반적으로 사용하는 센서의 뷰 필드에 따라 달라지므로 지정된 해상도에 대한 현관 값을 검색하는 데 잠재적인 문제가 발생합니다.
기능
디지털 창은 다음과 같은 여러 기존 컨트롤과 관련이 있습니다.
이동
기울기
확대/축소
카메라가 이러한 컨트롤에 디지털 구현을 사용하는 경우 디지털 창에서 보고한 값을 동일한 보기 필드와 일치하도록 변경해야 합니다. 마찬가지로 디지털 창은 이러한 컨트롤에서 보고하는 값을 변경해야 합니다. 이러한 컨트롤의 모든 디지털 구현은 동기화에서 다시 기본 위해 서로를 업데이트해야 합니다.
Microsoft는 이러한 컨트롤 간의 관계를 정의하지 않으며 마지막 집합 컨트롤만 우선합니다.
관심 영역
디지털 창이 FOV(명백한 보기 필드)를 변경하므로 ROI(관심 영역) 컨트롤을 통해 선택한 좌표는 SET가 이 컨트롤에 발급될 때마다 기본값으로 다시 설정되어야 합니다. 현재 ROI 컨트롤 목록에는 다음이 포함됩니다.
KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_PROPERTY_ID
KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_CONFIGCAPS/KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL
또한 이러한 관심 영역 컨트롤은 출력 창을 기준으로 해당 지역을 지정하므로 지정하는 좌표는 항상 현재 보기 필드의 사각형입니다. 디지털 창 컨트롤이 현재 보기 필드를 변경하므로 현재 디지털 창에 맞게 카메라에서 관심 영역 사각형을 다시 매핑해야 합니다. 예를 들어 현재 디지털 창에 (OriginX, OriginY)가 (0.0, 0.0)이고 WindowSize가 0.5이고 관심 지역이 있는 경우(0.0, 0.0), (0.5, 0.5)가 지정되면 카메라는 기본 보기 필드에 있는 (0.0, 0.0), (0.25, 0.25)에 해당하는 픽셀에 관심 영역 사각형을 다시 매핑해야 합니다. 이는 이러한 관심 영역 컨트롤을 사용하여 팬, 기울기 및 확대/축소 컨트롤의 명백한 동작과 유사하고 일치해야 합니다.
스트리밍
사용 가능한 유효한 디지털 창 값은 현재 가로 세로 비율에 따라 달라지므로 카메라는 MinWindowSize를 적용하기 위해 미디어 유형 및 스트리밍 인터페이스를 선택해야 합니다.
정보 값
보고된 NonUpscalingWindowSize 도 해상도별로 보고되지만 애플리케이션에만 정보가 제공됩니다. 이 값은 원본 이미지의 업 스케일링을 가져오기 위해 WindowSize로 설정할 값을 애플리케이션에 알립니다. 이를 통해 애플리케이션은 카메라 센서의 충실도 범위에서 이미지를 캡처할 수 있습니다.
메타데이터 특성
카메라가 MSXU_CONTROL_DIGITALWINDOW_CONFIG MSXU_CONTROL_DIGITALWINDOW 보급하고 MSXU_CONTROL_METADATA 0이 아닌 버퍼 크기를 설정한 경우 카메라는 모든 프레임에 대한 MF_CAPTURE_METADATA_DIGITAL_WINDOW 특성을 내보내야 합니다. 디바이스 MFT를 통해 또는 원시 메타데이터 버퍼에 MetadataId_DigitalWindow(값 7) 특성을 포함하여 이를 제공할 수 있습니다. 메타데이터 특성을 포함하는 방법은 섹션 2.2.3.1 Microsoft Standard 형식 메타데이터에 자세히 설명되어 있습니다.
이 메타데이터는 현재 샘플에 적용된 디지털 창을 보고하는 데 사용됩니다. 이렇게 하려면 MetadataId_DigitalWindow 값과 구조의 크기를 사용하여 KSCAMERA_METADATA_ITEMHEADER 초기화하고 디지털 창 컨트롤에서 적용된 OriginX, OriginY 및 WindowSize 값을 연결된 KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING 구조로 복사합니다.
참고 항목
섹션 2.2.3.1 Microsoft Standard 형식 메타데이터
KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW_CONFIGCAPS
KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW
KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPS
KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPSHEADER