[DirectShow 이 페이지와 연결된 기능은 레거시 기능입니다. MediaPlayer, IMFMediaEngine, Media Foundation 오디오/비디오 캡처대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11에 최적화되었습니다. Microsoft는 가능하면 새로운 코드에서 MediaPlayer, IMFMediaEngine 및 Audio/Video Capture를 DirectShow대신 Media Foundation 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
이 섹션에서는 VMR이 최종 출력 이미지에 매핑하기 전에 원본 이미지에 적용되는 5가지 변환에 대해 설명합니다.
- 변환 T(Src) 원본 사각형을 대상 사각형에 매핑합니다. 이는 미디어 형식의 VIDEOINFOHEADER 또는 VIDEOINFOHEADER2 구조체의 rcSource 및 rcTarget 멤버에 의해 지정됩니다. 이 매핑은 VMR에 전달되는 원본 이미지를 전처리합니다.
- 변환 T(플래그) 미디어 샘플의 플래그로 지정된 이미지 조작을 수행합니다. 여기에는 bob 인터레이스 플래그를 수용하기 위한 수직 변환 및 크기 조정과 같은 변환이 포함되었습니다. 인터레이스 변환은 이미지 높이를 두 배로 늘리고 홀수 필드에 있는 경우 비디오 라인의 절반으로 이미지를 변환할 수 있습니다.
- 변환 T(AR) 이미지 가로 세로 비율에 따라 이미지를 정사각형 픽셀로 조정합니다. VIDEOINFOHEADER 미디어 형식의 경우 가로 세로 비율은 이미지 크기에 따라 결정됩니다. VIDEOINFOHEADER2 형식의 경우 AMCONTROL_PAD_TO_16x9 또는 AMCONTROL_PAD_TO_4x3 플래그를 설정하지 않는 한 가로 세로 비율은 dwPictAspectRatioX 및 dwPictAspectRatioY 필드에 의해 결정됩니다. 이 변환에서는 모니터 표시 설정이 모니터의 실제 가로 세로 비율과 일치한다고 가정합니다. 예를 들어 사용자에게 가로 세로 비율이 4 x 3인 모니터가 있지만 디스플레이를 1280 x 768 픽셀(5 x 3)으로 설정하면 이미지에 올바른 가로 세로 비율이 없습니다.
- 변환 T(Mix) 변환은 IVMRMixerControl 메서드에 지정된 정규화된 사각형을 사용하여 대상 이미지 내에 이미지를 배치합니다. 정규화된 사각형을 사용하면 애플리케이션이 원본 스트림의 위치를 서로 기준으로 배치하고 크기를 조정하는 방법을 구성할 수 있습니다. VMR은 모든 원본 이미지의 최대 차원을 계산하고 각 이미지를 전체 경계 사각형 내부에 가운데에 배치하여 대상 이미지를 계산합니다. 경계 사각형의 모서리에는 범위(0,0)에서 (1,1)로 할당됩니다. 경계 사각형은 그래프가 실행되기 전에 수정되며 스트림이 추가되거나 삭제되더라도 일정하게 유지됩니다. 각 스트림의 대상 사각형은 범위(0,0)에서 (1,1) 범위 밖에 있을 수 있으며 여전히 유효합니다.
- 마지막으로, 혼합 이미지의 일부는 VMR의 IBasicVideo 인터페이스의 원본 및 대상 사각형으로 지정된 매핑 T(Dst)의해 변환될 수 있습니다. Allocator-Presenter 교체되고 IBasicVideo 인터페이스가 사용되지 않는 경우 애플리케이션은 IVMRWindowlessControl 인터페이스를 구현하고 좌표를 다시 2D 선형 공간에 매핑해야 합니다. DVD 탐색기로 반환된 마우스 좌표도 이 공간에 있어야 합니다. 예를 들어 애플리케이션이 회전하는 큐브에 비디오를 렌더링하는 경우 창 없는 컨트롤에 대한 전체 디스플레이를 다시 보고하고 디스플레이를 기준으로 마우스 좌표를 반환합니다.
원본 데이터에서 최종 렌더러로의 전체 이미지 변환은 다음과 같습니다.
T = T(Src)* T(Flag)T(Ar)T(Mix)* T(Dst)*
where *는 이미지가 해당 단계에서 대상 이미지로 잘려질 수 있음을 나타냅니다. 이러한 변환은 모두 아핀 변환이므로 VMR은 이러한 변환을 단일 변환으로 결합할 수 있습니다.
변환의 역방향은 다음과 같습니다.
역 변환
요소 T(Src) T(플래그) T(Ar)는 소스 해상도를 기준으로 합니다. 인수 T(Mix)에서 정규화된 원본 사각형은 가로로 수정된 이미지를 기준으로 합니다. 정규화된 대상 사각형은 출력 해상도를 기준으로 합니다. 다음 다이어그램은 이러한 관계를 보여줍니다.
관련 항목