2016-02-25 6 views
4

Я ищу Аппаратное ускорение (GPU) на основе видео scaling.I нашел широкое обсуждение в следующих потоках
How to use hardware video scalers? и
Hardware Accelerated Image Scaling in windows using C++аппаратного ускорения масштабирования MFT в windows7

Я стараюсь придерживаться на основе масштабирования MFT, потому что я также используя H.264 Encoder MFT в моем приложении.
Мы два параметра для MFT на основе решение-
1. Video Resizer DSP
2. Video Processor MFT

Но оба эти методы используются MF_SA_D3D_AWARE. Как уже упоминалось ниже:
Видео MFT имеет атрибут MF_SA_D3D_AWARE .aspx, который может использоваться для запроса того, поддерживает ли он аппаратное ускорение DirectX 3D, и это можно активировать, отправив сообщение MFT_MESSAGE_SET_D3D_MANAGER.
и MF_SA_D3D_AWARE поддерживается в Windows, 8 года.

Является ли их любой MFT для масштабирования, который использует аппаратное ускорение в Windows 7?

Я не исследовал другие два варианта (MFCreateVideoRenderer и IDirectXVideoProcessor :: VideoProcessBlt), упомянутые в How to use hardware video scalers?, которые будут поддерживаться в Windows 7 или нет. Но я активно ищу вариант MFT по приоритету.

ответ

1

В операционной системе Windows 7, я буду Recommand использовать IDXVAHD_VideoProcessor

У вас есть образец здесь: DXVA-HD Sample

Но я думаю, что если вы используете простую DirectXDevice9 с DirectXTexture9, результат масштабирования будет одна и та же. Нет причин, чтобы выделенный процесс масштабирования применим только к процессу видеофайлов. Я думаю, что они одинаковы для обоих (игровой и видео файл).

Одинокая вещь, которую я видел, заключается в том, что вы можете настроить режим сужения: DXVAHD_BLT_STATE_CONSTRICTION_DATA, который применяется к уменьшению масштаба, а не к масштабированию.

Смежные вопросы