我正在搜索基于硬件加速(GPU)的视频缩放.我在以下线程中找到了广泛的讨论
How to use hardware video scalers?和
Hardware Accelerated Image Scaling in windows using C++
我尝试坚持使用基于MFT的缩放,因为我在我的应用程序中也使用H.264编码器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消息来启用此功能.
Windows 8及更高版本支持MF_SA_D3D_AWARE.
他们的任何缩放MFT是否在Windows 7中使用硬件加速?
我还没有调查它在How to use hardware video scalers?中提到的其他两个选项(MFCreateVideoRenderer和IDirectXVideoProcessor :: VideoProcessBlt)是否支持Windows 7.但我正在积极寻找优先权的MFT选项.
最佳答案 在Windows 7下,我建议您使用
IDXVAHD_VideoProcessor
你有一个样本:DXVA-HD Sample
但我认为如果你使用一个简单的DirectXDevice9和DirectXTexture9,缩放结果将是相同的.专用缩放过程没有理由仅适用于视频文件过程.我认为它们(游戏和视频文件)都是一样的.
我看到的孤独的事情是,你可以设置收缩模式:DXVAHD_BLT_STATE_CONSTRICTION_DATA ,适用于降尺度,而不是真正升级.