画面をキャプチャするためにBitBltのパフォーマンスを向上させたいです。Aeroが有効なままの場合、画面の400x400ピクセル領域のみをキャプチャすると、キャプチャ時間が平均50ms(フル1920x1200)から約33ms(400x400の場合)に短縮されます。これは残念ながら低い改善です。
Aeroを無効にする唯一のオプションはありますか?Aeroを無効にすると、全画面で3ミリ秒の高速キャプチャを実行できることを私は知っています。
画面をキャプチャするためにBitBltのパフォーマンスを向上させたいです。Aeroが有効なままの場合、画面の400x400ピクセル領域のみをキャプチャすると、キャプチャ時間が平均50ms(フル1920x1200)から約33ms(400x400の場合)に短縮されます。これは残念ながら低い改善です。
Aeroを無効にする唯一のオプションはありますか?Aeroを無効にすると、全画面で3ミリ秒の高速キャプチャを実行できることを私は知っています。
Aero モードでのスクリーン キャプチャは、DWM との同期 (集合写真を撮るために全員がまばたきをしないのを待つことを考えてください) と、Vista で GPU パイプ全体をロックする必要があるため、非常にコストがかかります。Windows 7 では、一般的な GDI 操作を高速化し、GDI のロックを減らすことで、GDI のパフォーマンスが向上します) 。
文書化されていない DWM 関数またはフックを使用して、DWM が使用する共有サーフェスを取得しようとする試みがあります。ただし、画像データの処理 (ネットワークへの送信やファイルへの保存など) を計画している場合は、低速の FSB を介してビデオ メモリからシステム RAM にデータを移動するための代償を払う必要があります。
今のところエアロを無効にします。おそらく30 fpsの境界でロックしているため、15 fpsを実際に超えることができないようです.次の境界が始まるまでフレームを取得するために「入る」ことができず、それから待つ必要があります.経過する時間全体。