2016-02-25 2 views
4

Je suis à la recherche accélération matérielle (GPU) vidéo basée scaling.I a trouvé une discussion approfondie dans les discussions suivantes
How to use hardware video scalers? et
Hardware Accelerated Image Scaling in windows using C++échelle accélération matérielle MFT dans Windows7

J'essaie de coller avec mise à l'échelle en fonction MFT parce que je également en utilisant Encodeur H.264 MFT dans mon application.
Nous avons deux options pour MFT à base Solution-
1. Video Resizer DSP
2. Video Processor MFT

Mais ces deux méthodes utilisées MF_SA_D3D_AWARE. Comme mentionné ci-dessous:
Une vidéo MFT a l'attribut MF_SA_D3D_AWARE .aspx qui peut être utilisé pour demander si elle prend en charge l'accélération matérielle DirectX 3D, et cela peut être activé en lui envoyant le message MFT_MESSAGE_SET_D3D_MANAGER.
et MF_SA_D3D_AWARE est pris en charge dans Windows 8 partir.

Est-ce que leur MFT pour la mise à l'échelle utilise l'accélération matérielle dans Windows 7?

Je n'ai pas étudié d'autres deux options (MFCreateVideoRenderer et IDirectXVideoProcessor :: VideoProcessBlt) mentionnées dans How to use hardware video scalers? qu'elle prendra en charge dans Windows 7 ou non. Mais je recherche activement l'option MFT en priorité.

Répondre

1

Sous Windows 7, je vous recommandons d'utiliser IDXVAHD_VideoProcessor

Vous avez un échantillon ici: DXVA-HD Sample

Mais je pense que si vous utilisez simple DirectXDevice9 avec un DirectXTexture9, le résultat de la mise à l'échelle sera la même. Il n'y a aucune raison que le processus de mise à l'échelle dédié s'applique uniquement au processus de fichier vidéo. Je pense qu'ils sont les mêmes pour les deux (jeu et fichier vidéo).

La seule chose que j'ai vu, c'est que vous pouvez configurer le mode de constriction: DXVAHD_BLT_STATE_CONSTRICTION_DATA, qui s'applique à la réduction d'échelle, pas vraiment à l'upscaling.