YUV 혼합 모드
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
이 항목은 Windows XP 서비스 팩 2 이상에 적용됩니다.
Windows XP 서비스 팩 2부터 VMR은 YUV 혼합 모드라는 혼합 모드를 지원합니다. 이 모드는 고급 TV 또는 DVD 애플리케이션에 가장 유용합니다. 통합 메모리 아키텍처 디자인을 사용하는 저가형 그래픽 하드웨어에서 더 나은 성능을 위해 VMR 믹서의 일부 성능을 교환합니다. YUV 혼합 모드는 VMR-7 및 VMR-9 모두에서 지원됩니다.
장점
YUV 혼합 모드에는 VMR에서 지원하는 원래 RGB 혼합 모드보다 렌더링 성능과 관련된 몇 가지 이점이 있습니다.
- VMR이 YUV 혼합 모드인 경우 모든 인터레이스 해제 및 비디오 스트림 컴퍼지션 작업은 YUV 색 공간에서 수행됩니다. YUV 표면은 일반적으로 동일한 RGB 표면보다 50%에서 60% 적은 메모리 대역폭을 필요로 합니다.
- 디인터레이싱 및 스트림 컴퍼지션은 그래픽 드라이버에 대한 단일 호출에 의해 수행됩니다. 드라이버는 그래픽 하드웨어의 다중 텍스처링 기능을 사용하여 메모리 대역폭을 추가로 절감할 수 있습니다.
모든 비디오 애플리케이션은 YUV 혼합 모드를 사용할 수 있지만 주로 두 가지 유형의 비디오 재생 애플리케이션을 위한 것입니다.
- 선택 자막 또는 텔레텍스트를 표시하는 TV 애플리케이션.
- DVD 응용 프로그램은 DVD 하위 사진 데이터 또는 선택 자막을 표시합니다.
제한 사항
VMR이 YUV 혼합 모드로 전환될 때 여러 제한 사항이 적용됩니다.
- 스트림 0(입력 핀 0에 연결된 스트림)은 점진적이거나 인터레이스될 수 있습니다. 다른 모든 스트림은 점진적이어야 합니다.
- 스트림 0에는 GUID_NULL(직조 모드)가 허용되지 않습니다.
- DeinterlacePref_Weave 대체 모드로 사용할 수 없습니다. 이 경우 인터레이스 해제 디바이스가 생성되지 않을 수 있기 때문입니다. YUV 혼합 모드는 들어오는 비디오가 인터레이스되지 않은 경우에도 deinterlace 디바이스가 필요합니다.
- 각 VMR 입력 스트림과 연결된 평면 알파 값은 변경할 수 없습니다.
- 사용자는 연결된 비디오 스트림의 Z 순서를 변경할 수 없습니다. 기본 Z 순서는 핀 순서에서 가져옵니다.
- 색 키 지정은 지원되지 않습니다.
- 입력 핀 0은 비디오 스트림을 받아야 합니다.
- 다른 입력 핀은 DVD 하위 사진, 선택 자막 또는 텔레텍스트와 같은 비디오 하위 스트림 데이터만 받을 수 있습니다.
- 다른 입력 핀은 AYUV, AI44 및 IA44와 같은 픽셀당 알파 YUV 형식만 허용할 수 있습니다.
- VMR의 입력 핀 중 어느 것도 RGB 형식을 허용할 수 없습니다.
- 애플리케이션 제공 비트맵 이미지는 디스플레이에 프레젠테이션하기 전에 더 이상 비디오와 결합할 수 없습니다.
- VMR의 믹서 "출력 사각형" 함수를 사용하여 개별 하위 스트림을 가로 또는 세로로 반전할 수 없습니다. "일반" 스트림 위치 조정 및 크기 조정이 지원됩니다.
- 혼합 배경색( IVMRMixerControl::SetBackgroundClr로 지정됨)은 RGB 혼합 모드와 마찬가지로 RGB 색 공간에 여전히 지정됩니다.
Configuration
애플리케이션은 YUV 혼합 모드를 활용하도록 VMR을 명시적으로 구성해야 합니다. 원래 RGB 혼합 모드는 기본 혼합 모드로 유지됩니다. VMR-7에서 YUV 혼합 모드를 사용하도록 설정하려면 MixerPref_RenderTargetYUV 플래그를 사용하여 IVMRMixerControl::SetMixingPrefs 를 호출합니다. VMR의 입력 핀이 연결되기 전에 이 호출을 수행해야 합니다. VMR-9에서 YUV 혼합 모드를 사용하도록 설정하려면 MixerPref9_RenderTargetYUV 플래그를 사용하여 IVMRMixerControl9::SetMixingPrefs 를 호출합니다.
VMR-7이 새 YUV 혼합 모드를 지원하는지 확인하는 유일한 방법은 VMR을 해당 모드로 설정하는 것입니다. 호출이 성공하면 필요한 경우 VMR을 RGB 혼합 모드로 다시 전환할 수 있습니다. YUV 혼합 모드로 설정된 후에는 모든 입력 핀의 연결이 끊긴 후에만 VMR을 RGB 혼합 모드로 다시 변경할 수 있습니다.
YUV 혼합 모드에서는 SetMixingPrefs 메서드에 다음 플래그를 적용하여 GPU(그래픽 처리 장치)의 부하를 줄일 수 있습니다.
플래그 | 설명 |
---|---|
VMR-7: MixerPref_DynamicSwitchToBOBVMR-9: MixerPref9_DynamicSwitchToBOB |
bob deinterlacing으로 전환합니다. |
VMR-7: MixerPref_DynamicDecimateBy2VMR-9: MixerPref_DynamicDecimateBy2 |
이미지를 가로 및 세로로 2 배씩 분리합니다. |
필터 그래프가 실행되는 동안 이러한 플래그를 추가하거나 제거할 수 있습니다. VMR 믹서가 다음 비디오 프레임을 작성할 때 변경 내용이 적용됩니다. 플래그는 상호 배타적이지 않습니다. 이러한 설정은 이미지의 품질을 줄이므로 일반적으로 비디오 품질이 덜 중요한 경우에만 적용합니다(예: 비디오가 사용자 인터페이스의 작은 부분에서 재생되는 경우).
관련 항목