Поделиться через


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

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

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

  1. Преобразование T(Src) сопоставляет исходный прямоугольник с прямоугольником назначения. Они задаются членами rcSource и rcTarget структуры VIDEOINFOHEADER или VIDEOINFOHEADER2 в типе мультимедиа. Это сопоставление предварительно обрабатывает исходный образ по мере его передачи в VMR.
  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 на VMR. Если Allocator-Presenter заменен и интерфейс IBasicVideo не используется, приложение должно реализовать интерфейс IVMRWindowlessControl и сопоставить координаты обратно в двухмерное линейное пространство. Координаты мыши, возвращенные в DVD-навигатор, также должны находиться в этом пространстве. Например, если приложение отрисовывает видео на вращающийся куб, оно будет сообщать о всем дисплее для элемента управления без окон и возвращать координаты мыши относительно дисплея.

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

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

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

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

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

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

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

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