Сопоставление координат в VMR

[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

В этом разделе описываются пять преобразований, применяемых к исходному образу перед сопоставлением виртуальной машины с конечным выходным образом.

  1. Преобразование T(Src) сопоставляет исходный прямоугольник с прямоугольником назначения. Они задаются rcSource и rcTarget членами VIDEOINFOHEADER или VIDEOINFOHEADER2 в типе носителя. Это сопоставление предварительно обрабатывает исходный образ по мере передачи виртуальной машины.
  2. Преобразование T(Flag) выполняет любые манипуляции с изображениями, указанными флагами в примере мультимедиа. Они включали преобразования, такие как вертикальный перевод и масштабирование для размещения флагов боба переплета. Преобразование перемешивает высоту изображения и, возможно, преобразует изображение на половину видеолайна, если оно находится в нечетном поле.
  3. Преобразование T(AR) настраивает изображение на квадратные пиксели на основе пропорции изображения. Для типов мультимедиа VIDEOINFOHEADER пропорции определяются размером изображения. Для типов VIDEOINFOHEADER2 пропорции определяются dwPictAspectRatioXи полями dwPictAspectRatioY, если не заданы флаги AMCONTROL_PAD_TO_16x9 или AMCONTROL_PAD_TO_4x3. Это преобразование предполагает, что параметр отображения монитора соответствует физическому пропорции монитора. Например, если у пользователя есть монитор с пропорциями 4 x 3, но при этом отображается значение 1280 x 768 пикселей (5 x 3), изображение не будет иметь правильного пропорции.
  4. Преобразование T(Mix) преобразует изображение в целевом изображении с помощью нормализованных прямоугольников, указанных в методах IVMRMixerControl. Нормализованные прямоугольники позволяют приложению упорядочивать расположение и масштабирование исходных потоков относительно друг друга. VmR вычисляет целевой образ, вычисляя максимальные размеры всех исходных образов и центрируя каждый из них внутри общего ограничивающего прямоугольника. Угла ограничивающего прямоугольника назначаются диапазону (от 0,0) до (1,1). Ограничивающий прямоугольник исправлен перед выполнением графа и остается константой, даже если потоки добавляются или удаляются. Прямоугольники назначения для каждого потока могут находиться за пределами диапазона (0,0) до (1,1) и по-прежнему допустимы.
  5. Наконец, часть смешанного изображения можно преобразовать с помощью сопоставленияT(Dst), указанного прямоугольниками источника и назначения в интерфейсе IBasicVideo на виртуальной машине. Если Allocator-Presenter заменен и интерфейс IBasicVideo не используется, приложение должно реализовать интерфейс IVMRWindowlessControl и сопоставить координаты обратно в 2D линейное пространство. Координаты мыши, возвращенные на DVD-навигатору, также должны находиться в этом пространстве. Например, если приложение отрисовывает видео в кубе спиннинга, они будут сообщать всему экрану для элемента управления без окон и возвращать координаты мыши относительно отображения.

Общее преобразование изображения из исходных данных в окончательный отрисовщик:

T = T(Src)* T(Flag)T(Ar)T(Mix)* T(Dst)*

where * указывает, что изображение может быть обрезано к целевому изображению на этом этапе. Обратите внимание, что это все аффинные преобразования, поэтому VMR может объединить их в одно преобразование.

Обратное преобразование:

обратное преобразование

Коэффициент T(Src) T(Flag) T(Ar) относительно разрешения источника. В факторе T(Mix) нормализованный исходный прямоугольник относится к изображению с исправленным аспектом. Нормализованный прямоугольник назначения относительно разрешения выходных данных. На следующей схеме показаны эти связи.

этапы преобразования изображений

Использование VMR для разработчиков фильтров DirectShow