Использование декимации для оптимизации производительности смешивания
[Функция, связанная с этой страницей, 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.
Перед подключением к VMR необходимо вызвать метод SetMixingPrefs. Флаги смешивания предпочтений нельзя изменить после запуска графа.
Связанные разделы