다음을 통해 공유


다중 핀 카메라의 드라이버 MFT에 대한 고려 사항(UWP 디바이스 앱)

Important

디바이스 메타데이터는 더 이상 사용되지 않으며 향후 Windows 릴리스에서 제거될 예정입니다. 이 기능의 대체에 대한 자세한 내용은 드라이버 패키지 컨테이너 메타데이터를 참조하세요.

Windows는 IHV 및 시스템 OEM을 카메라 드라이버 MFT로 알려진 MFT(Media Foundation Transform) 형식으로 비디오 처리 플러그 인을 만들 수 있는 기능을 제공합니다. 설치되면 이러한 드라이버 MFT는 UWP 디바이스 앱에서 특수 비디오 효과를 사용하도록 설정하는 데 사용됩니다. 일부 카메라는 미리 보기, 캡처 및 스틸을 위한 별도의 핀을 제공합니다. 이러한 멀티 핀 카메라는 개발자에게 고유한 문제를 제기합니다. 이 문서에서는 멀티 핀 카메라에서 카메라 드라이버 MFT를 개발할 때 고려해야 할 몇 가지 사항을 설명합니다. 드라이버 MFT를 만드는 방법에 대한 자세한 내용은 카메라 드라이버 MFT 만들기를 참조하세요.

Introduction

드라이버 MFT는 원본 판독기에서 작동하는 첫 번째 MFT임을 나타내기 위해 MFT0이라고도 합니다. MFT0의 별도 인스턴스는 캡처 원본의 모든 핀에 연결됩니다. 일부 시스템 OEM의 경우 AVStream 캡처 드라이버는 미리 보기 핀, 캡처 핀 및 스틸 핀을 지원해야 합니다. 즉, MFT0의 인스턴스가 세 개 있을 수 있습니다. 이 다이어그램은 IHV 플러그 인 MFT의 복사본 3개가 있는 이 아키텍처를 보여 줍니다. 각 스트림마다 하나씩.

mf에서 확장 플러그 인 모델을 캡처합니다.

MFT0의 일반적인 시나리오에서는 문제가 발생할 수 있습니다. MFT0에 사용되는 두 가지 함수는 다음과 같습니다.

  • 비디오 스트림을 분석하여 향상된 캡처를 위해 카메라에 피드백을 제공(예: 호스트 기반 자동 포커스 및 자동 노출)

  • 비디오 효과 추가

One-pin webcam

지금까지 카메라는 단일 캡처 핀으로 Windows에 노출되었습니다. 이 다이어그램은 원핀 웹캠의 작동 방식을 나타냅니다.

one-pin webcam.

이 경우 카메라 컨트롤과 비디오 효과가 적용된 후 미리 보기 및 스틸이 캡처 핀에서 테링되므로 카메라 컨트롤과 비디오 효과가 모두 디자인된 대로 작동합니다. 그 결과 저장된 파일 또는 사용자의 채팅 친구가 사용자가 미리 보기에서 보는 것과 동일한 비디오 효과를 볼 수 있으며 카메라 컨트롤 기능의 인스턴스는 하나뿐입니다. 연결된 UWP 디바이스 앱이 있는 경우 앱이 캡처 핀의 MFT0에 연결되므로 MFT0은 앱(즉, 사용자)에서 제어 메시지를 가져옵니다.

Three-pin webcam

3핀 카메라는 애플리케이션 요구 사항에 따라 MFT0 인스턴스를 3개까지 가질 수 있습니다. 이 다이어그램은 3핀 카메라의 작동 방식을 나타냅니다.

three-pin webcam.

이 상황은 몇 가지 과제를 제시합니다. 먼저 카메라 센서와 ISP 설정을 직접 제어해야 하는 호스트 기반 자동 노출 솔루션의 경우 3개의 MFT0이 동시에 카메라를 제어하려고 할 수 있습니다. 이렇게 하면 제어 시스템이 중단됩니다.

둘째, 비디오 효과의 세 가지 인스턴스가 있을 수 있습니다. 이제 MFT0의 세 인스턴스는 계산의 3배에 달하는 비용을 발생시키는 것 외에도 각 비디오 프레임이 항상 동일한 상태에서 동일한 효과를 발휘하도록 하는 방식으로 통신해야 합니다. 그렇지 않으면 사용자에게 표시되는 항목이 저장되거나 공유되지 않습니다.

또한 두 가지 최종 복합 요소가 있습니다.

  • MFT0의 각 인스턴스는 언제든지 만들거나 종료할 수 있습니다.

  • UWP 디바이스 앱은 MFT0의 한 인스턴스에만 연결됩니다.

Compressed video

웹캠 또는 시스템 OEM은 캡처 핀(즉, 웹캠 자체)에 표시되기 전에 비디오를 압축하도록 선택할 수 있습니다. 압축을 웹캠으로 오프로드하면 저전력 PC가 HD 비디오를 저장하고 공유할 수 있습니다. 이 압축된 비디오 스트림은 일반적으로 카메라 컨트롤을 지원하기 위해 분석할 수 없으며 비디오 효과를 적용할 수도 없습니다. 이 시나리오에서는 캡처 스트림에 효과가 적용되지 않는다는 것을 인식하여 MFT0의 모든 인스턴스(및 Microsoft Store 디바이스 앱이 있는 경우)를 만드는 문제를 제시합니다. 이 다이어그램은 압축된 비디오를 나타냅니다.

compressed video.

사용자가 미리 보기 스트림에 비디오 효과를 적용하는 경우 캡처 스트림 또는 스틸 핀에 적용할 수 없습니다. 따라서 사용자는 저장된 비디오 또는 스트리밍된 비디오에 적용되지 않는 비디오 효과를 볼 수 있습니다. 미리 보기 스트림이 중지되면 Microsoft Store 디바이스 앱이 캡처 스트림에 연결을 시도합니다. 사용자가 압축 비디오를 스트리밍하는 경우 많은 기능이 허용되지 않습니다.

MFT0 인스턴스 간 통신

MFT0의 세 인스턴스가 서로 통신할 수 있는 경우 대부분의 문제를 해결할 수 있습니다. 이러한 인스턴스가 서로를 검색하는 방법은 IHV에 달려 있습니다. 모든 MFT0이 통신할 수 있게 되면 Microsoft Store 디바이스 앱에 연결된 MFT0 인스턴스가 다른 인스턴스에 적용 중인 효과와 현재 상태를 알 수 있습니다. 또한 세 인스턴스는 카메라 컨트롤을 적용하는 인스턴스를 결정할 수 있습니다. 마지막으로, 미리 보기 핀은 캡처 핀이 인코딩된 비디오를 스트리밍하는지 확인할 수 있습니다. 그러면 미리 보기 핀에서 비디오 효과를 사용하지 않도록 설정할 수 있습니다.

MFT0 인스턴스 간의 통신은 주요 사용자 환경 문제를 해결하지만 비디오 효과의 세 인스턴스는 여전히 동시에 실행되어야 합니다. 일부 비디오 효과는 특히 전체 화면 비디오를 미리 보고 동시에 캡처하는 경우 사용 가능한 대부분의 CPU 리소스를 사용할 수 있습니다. 이것은 심각한 문제입니다. 성능상의 이유로 각 ISV는 한 번 수행할 수 있는 처리를 고려하고 얼굴 감지와 같은 MFT0의 모든 인스턴스와 공유해야 합니다.