[心得] 影像處理各種存取方式

看板C_Sharp (C#)作者 (.)時間8年前 (2016/12/11 00:14), 8年前編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
https://github.com/erspicu/AccessDemo https://github.com/erspicu/AccessDemo/blob/master/AccessDemo/Program.cs 對處理影像來說,最基本最基本的的課題有兩個 1.存取pixel的資料 2.存取pixel內各rgb各自部分的內容 處理完畢後,存回 對針最基本的資料讀取與儲存 測試了各種不同的策略 當然除了寫法差異外 其實跟硬體環境和runtime都有所關係 怎樣適合 請自行評估 下面是我的結果 有最佳化 非debug模式 在x86執行的話 以ulong的模式存取資料 就沒優勢了 相反的x64的話 用ulong存取資料 剛好是cpu一次讀取的長度 使用ulong一次讀兩顆pixel 在x64時代其實是比較有效率的 不過長寬必須是2的倍數 x64 64bit mode Version: 4.0.30319.42000 [測試資料搬移速度] Copy by bytes cost : 4701 fps : 106 Copy by uint cost : 1873 fps : 266 Copy by ulong cost : 1442 fps : 346 [測試RGB各項存取處理搬移速度] deal by bytes cost : 4655 fps : 107 deal by uint way 1 (combine by bitwise) cost : 4222 fps : 118 deal by uint way 2 (combine by byte loc) cost : 3219 fps : 155 deal by ulong way 1 (combine by bitwise) cost : 2758 fps : 181 deal by ulong way 2 (combine by byte loc) cost : 2302 fps : 217 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.70.88.120 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1481386444.A.3A0.html ※ 編輯: erspicu (61.70.88.120), 12/11/2016 00:31:55

12/11 11:37, , 1F
12/11 11:37, 1F

12/15 22:49, , 2F
12/15 22:49, 2F
文章代碼(AID): #1OJ2dCEW (C_Sharp)
文章代碼(AID): #1OJ2dCEW (C_Sharp)