Mapowanie współrzędnych w usłudze VMR
[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
W tej sekcji opisano pięć przekształceń zastosowanych do obrazu źródłowego, zanim zostanie on zamapowany przez maszynę wirtualną na końcowy obraz wyjściowy.
- Przekształcenie T(Src) mapuje prostokąt źródłowy na prostokąt docelowy. Są one określane przez rcSource i rcTarget elementów członkowskich VIDEOINFOHEADER lub VIDEOINFOHEADER2 w typie nośnika. To mapowanie wstępnie przetwarza obraz źródłowy podczas jego przejścia do maszyny wirtualnej.
- Transformacja T(Flaga) wykonuje wszelkie manipulacje obrazami określone przez flagi w przykładzie multimediów. Obejmowały one przekształcenia, takie jak tłumaczenie pionowe i skalowanie, aby pomieścić flagi przeplatanego boba. Transformacja międzylacyjna podwaja wysokość obrazu i prawdopodobnie tłumaczy obraz o połowę linii wideo, jeśli znajduje się w nieparzysnym polu.
- Przekształcenie T(AR) dostosowuje obraz do pikseli kwadratowych na podstawie współczynnika proporcji obrazu. W przypadku typów multimediów VIDEOINFOHEADER współczynnik proporcji zależy od rozmiaru obrazu. W przypadku typów VIDEOINFOHEADER2 współczynnik proporcji jest określany przez dwPictAspectRatioX i dwPictAspectRatioY pól, chyba że ustawiono flagi AMCONTROL_PAD_TO_16x9 lub AMCONTROL_PAD_TO_4x3. W tej transformacji przyjęto założenie, że ustawienie wyświetlania monitora jest zgodne z fizycznym współczynnikiem proporcji monitora. Jeśli na przykład użytkownik ma monitor z współczynnikiem proporcji 4 x 3, ale ustawia ekran na 1280 x 768 pikseli (5 x 3), obraz nie będzie miał poprawnego współczynnika proporcji.
- Przekształcenie T(Mix) przekształca obraz w obrębie obrazu docelowego przy użyciu znormalizowanych prostokątów określonych w metodach IVMRMixerControl. Znormalizowane prostokąty umożliwiają aplikacji organizowanie sposobu pozycjonowania i skalowania strumieni źródłowych względem siebie. Usługa VMR oblicza obraz docelowy przez obliczenie maksymalnych wymiarów wszystkich obrazów źródłowych i wyśrodkowanie każdego wewnątrz ogólnego prostokąta ograniczenia. Narożniki prostokąta ograniczenia są przypisywane do zakresu (0,0) do (1,1). Prostokąt ograniczenia jest stały przed uruchomieniem grafu i pozostaje stały, nawet jeśli strumienie są dodawane lub usuwane. Prostokąty docelowe dla każdego strumienia mogą znajdować się poza zakresem (0,0) do (1,1) i nadal być prawidłowe.
- Na koniec część obrazu mieszanego może zostać przekształcona przez mapowanie T(Dst), określone przez prostokąty źródłowe i docelowe w interfejsie IBasicVideo maszyny wirtualnej. Jeśli Allocator-Presenter zostanie zastąpiony, a interfejs IBasicVideo nie jest używany, aplikacja musi zaimplementować interfejs IVMRWindowlessControl i mapować współrzędne z powrotem do przestrzeni liniowej 2D. Współrzędne myszy zwrócone do nawigatora DVD muszą również znajdować się w tym miejscu. Jeśli na przykład aplikacja renderuje wideo na przędzającym module, będzie zgłaszać cały ekran dla kontrolki bez okna i zwracać współrzędne myszy względem wyświetlacza.
Ogólna transformacja obrazu z danych źródłowych do końcowego modułu renderowania to:
T = T(Src)* T(Flag)T(Ar)T(Mix)* T(Dst)*
gdzie * wskazuje, że obraz może zostać przycięty do obrazu docelowego na tym etapie. Należy pamiętać, że są to wszystkie przekształcenia affine, więc maszyna wirtualna może połączyć je w jedną transformację.
Odwrotność transformacji to:
Współczynnik T(Src) T(Flaga) T(Ar) jest względny do rozdzielczości źródłowej. W przypadku współczynnika T(Mix) znormalizowany prostokąt źródła jest względny względem obrazu poprawionego aspektem. Znormalizowany prostokąt docelowy jest względny do rozdzielczości wyjściowej. Na poniższym diagramie przedstawiono te relacje.
Tematy pokrewne