最新のグラフィックカードには、AMD Avivo、NVIDIA PureVideo、IntelClearVideoなどのハードウェアビデオスケーラーが搭載されています。たとえば、AMDのAvivoホワイトペーパーには次のように書かれています。
「画像出力スケーラーは、最大6つの垂直フィルタータップと最大10の水平フィルタータップをサポートします。これらのスケーラーは、高度にプログラム可能な高精度の多相スケーラーです。実質的に任意の比率でのアップスケーリング、または最大4つのダウンスケーリングに適しています。 :1。」
質問: Windowsプログラムからビデオスケーラーハードウェアをどのように使用できますか?
たとえば、にデコードされたビデオフレームがすでに存在IDirect3DSurface9
し、ハードウェアスケーラーを使用してそのビデオフレームを画面に表示することが目標であると想定します。可能であればベンダー固有のAPIではなく、MediaFoundationやDirectShowなどのWindowsAPIを使用したいと思います。私は主に1.5〜3倍程度のかなり大きな係数でのアップスケーリングに興味があります。
二次的な質問は、ビデオスケーラーのハードウェアパラメータをどのように制御できるかということです。(例えば、上記の多相フィルターのフィルター係数)
編集:バウンティが始まりました。ビデオカードでビデオスケーラーハードウェアを使用する方法の例を提供してください(これはベンダー固有であるか、DirectX / DirectShow / Media Foundation APIの任意のバージョンを使用する場合があります)。
編集:更新:ビデオスケーラーハードウェアを使用するプログラムの例:WinDVD、PowerDVD、madVR。D3Dシェーダーやテクスチャサンプラーを使用して実装されたスケーラーではなく、GPUに組み込まれているビデオハードウェアスケーラーを使用する方法を知りたいです。