30597


今使っているPCのCPUがQuick Sync Video（QSV)に対応しているかをコード上(C#)で判定したいです。

最初は、WMIのWin32_Processorから取得できるCPUの製造元(Intel製以外を除外),モデル番号(Sandy
Bridge以前のCPUを除外),名前(Celeron,Pentium,Atom,Xeonを除外)による判別を目指しました。

しかし調べてみると、QSVが利用可能なアーキテクチャーのモデル番号が非連続かつ間にQSV非対応アーキテクチャーが存在したり、（Ex:Sandy
Bridgeの42,45の間にWestmereの44が存在）  
一部アーキテクチャーではCeleron等の除外しようとした中に、一部QSV対応するモデルがあったりなどの例外があることがわかりました。

結果、一部の例外CPU名を手打ちで書き込むという、ミスが起こり得るようなスマートではないコードになってしまいました。

何かスマートにこれらの判別を行える手段はないでしょうか？


CC BY-SA 3.0
2016-11-22T07:18:29.013
30595
2016-11-22T08:38:41.413
8521
question
c#
Intel Quick Sync Video対応CPUかどうか判断したい


端末がQSVに対応しているかどうかを判定するためにはCPUモデルだけではなく、グラフィックドライバーのバージョンも考慮する必要があります。Intel
Media SDKをどうにかC#から参照するか、他のQSV対応アプリケーションをうまく利用して判定するのが良いのではないでしょうか。

なお一般論としてCPUの判定にはCPUIDが利用できます。WMIでは`ProcessorId`で一部の値が取得可能ですが、これだけでQSV周りのフィーチャーフラグが全て参照できるのかは分かりません。


CC BY-SA 3.0
2016-11-22T08:38:41.413
30597
2016-11-22T08:38:41.413
5750
30595
answer