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


Использование декимации для оптимизации производительности смешивания

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

Важно!

Оптимизация, описанная в этом разделе, в значительной степени зависит от базового оборудования. Если вы не можете гарантировать, какой тип графического оборудования будет использоваться с приложением, это может серьезно ухудшить внешний вид видеоинимка.

 

HDTV требует много вычислительной мощности, которая в новых системах обеспечивается в основном графическими карта. Но даже если графические карта и декодер могут поддерживать разрешения 1920x1080, пользователь может не всегда иметь такое разрешение монитора. В этом случае графический чип требуется для создания изображения размером 1920 x 1080, а затем уменьшить разрешение перед отправкой в буфер кадров.

Так как это пустая вычислительную мощность, VMR предоставляет способ децимирования (уменьшения) изображения во время его отрисовки на поверхности DirectDraw. Это избавляет от необходимости дополнительного копирования памяти, если необходимо изменить размер изображения после отрисовки.

VMR-7: Чтобы включить децимацию, вызовите IVMRMixerControl::SetMixingPrefs с флагом MixerPref_DecimateOutput.

VMR-9: Чтобы включить децимацию, вызовите IVMRMixerControl9::SetMixingPrefs с флагом MixerPref9_DecimateOutput.

Перед подключением виртуальной машины необходимо вызвать метод SetMixingPrefs . Флаги параметров смешивания нельзя изменить после выполнения графа.

Использование режима смешивания VMR