Современные видеокарты имеют аппаратные видеоадаптеры, например, в составе AMD Avivo, NVIDIA PureVideo или Intel ClearVideo. Например, AMD Avivo whitepaper говорит:
"Масштабируемые изображения поддерживают до 6 вертикальных отводов фильтра и вверх до 10 горизонтальных фильтров. Эти масштабирующие устройства являются высокоточными многофазные масштабирующие устройства, которые очень программируемы; они подходят для масштабирование практически любым отношением или уменьшением масштаба до 4: 1.
Вопрос: Как можно использовать оборудование для масштабирования видео в программе Windows?
Предположим, что уже существует декодированный видеокадр, например, в IDirect3DSurface9
, и цель состоит в том, чтобы отобразить этот видеокадр на экране с помощью аппаратного масштабирования. Я хотел бы использовать Windows API, например, Media Foundation или DirectShow, а не API-интерфейсы для поставщиков, если это возможно. Меня в основном интересует масштабирование с довольно большим коэффициентом около 1.5-3x.
Второй вопрос заключается в том, как управлять аппаратными параметрами видеосканера? (Например, коэффициенты фильтра в многофазных фильтрах, упомянутых выше)
ИЗМЕНИТЬ: Началась баунти. Просьба привести пример любого способа использования оборудования для видеообслуживания на видеокарте (это может быть специфичным для поставщика или использовать любую версию DirectX/DirectShow/Media Foundation API).
РЕДАКТИРОВАТЬ:. Обновление. Некоторые примеры программ, которые используют оборудование для масштабирования видео: WinDVD, PowerDVD, madVR. Я хочу знать, как выполнить то, что они делают, а именно использовать встроенный видеоусилитель GPU, а не скалер, реализованный с использованием шейдеров D3D и сэмплеров текстур.