3
我從我們的硬件設備(FPGA)獲得大約每秒20幀(500x500像素),我想盡可能快地渲染它們。我們基本上每50毫秒獲得一個幀緩衝區,如果我的渲染速度太慢 - 呃...我正在跳幀。使用WPF進行超快速位圖渲染,最佳解決方案?
我的問題是從C++/CLI驅動程序呈現到基於WPF的應用程序。我知道可以在WPF應用程序中託管DirectX窗口。什麼是最快的解決方案?
我從我們的硬件設備(FPGA)獲得大約每秒20幀(500x500像素),我想盡可能快地渲染它們。我們基本上每50毫秒獲得一個幀緩衝區,如果我的渲染速度太慢 - 呃...我正在跳幀。使用WPF進行超快速位圖渲染,最佳解決方案?
我的問題是從C++/CLI驅動程序呈現到基於WPF的應用程序。我知道可以在WPF應用程序中託管DirectX窗口。什麼是最快的解決方案?
InteropBitmap是更新視頻幀的最快方法。這比WriteableBitmap稍微複雜一點,但是它的性能是值得的。
我在我的一個OSS項目中有一個例子。它是32位RGBA的硬編碼,但你可以修改它爲24位。
http://silverlightviewport.codeplex.com/SourceControl/changeset/view/39341#809062
D3DImage是另一種快速的方法,但可能會在您的情況是矯枉過正。
非常有興趣聽到人們對此的評論。順便說一下,什麼是數據格式,原始的24位RGB? – 2010-07-23 20:27:13
您是否嘗試過使用myImageElement.Source = BitmapSource.Create(...)每秒20次以查看其效果如何? – Tergiver 2010-07-23 20:53:42
@Kieren Johnstone:數據是8位索引的硬編碼色彩地圖/調色板。 @Tergiver:這是我現在所做的。我認爲我必須手動調用GC.Collect() - 我會耗盡內存! – HW2015 2010-07-24 10:04:36