HD 解像度 (1920 x 1080) で動作する WPF を使用して構築されたタッチ スクリーン アプリケーションがあり、同じく HD のループ バックグラウンド ビデオがあります。バックグラウンド ビデオは、アプリの存続期間中実行されます。UI は "上" (z オーダー) に配置されます。ただし、UI のレンダリングがぎくしゃくして遅延しているように見えるので、このパフォーマンスを改善したいと考えています。ビデオを実行せずにアプリを実行すると、UI が期待どおりにスムーズに実行されます。UIの応答性を改善する方法を誰か提案できますか? 以下は、私のループビデオファイルの詳細です。
編集: 私が行ったいくつかの調査: 遅いコンピューターでは、ビデオと UI が遅くなります。ただし、ビデオを単独で実行すると、ビデオは非常にスムーズに実行されます。ビデオなしで UI を実行すると、非常にスムーズに実行されます。ビデオと UI を一緒に実行すると問題が発生し、どういうわけかレンダリングが遅くなります。WPFMediaKit の MediaUriElement コントロールを使用しています。Win7DSFilterTweaker を使用して Windows 7 のデフォルト デコーダを変更しようとしましたが、うまくいきませんでした。助言がありますか?
EDIT 2: ボトルネックは WPF レンダリング エンジンにあるようです。ビデオを実行すると、FPS が ~34fps に低下します。ビデオを一時停止すると、再び 60 fps で実行されます。ここで何か提案はありますか?
Video
ID : 0
Format : MPEG-4 Visual
Codec ID : DIV3
Codec ID/Hint : DivX 3 Low
Duration : 12s 12ms
Bit rate : 8 558 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.138
Stream size : 12.3 MiB (100%)