[心得] 影像处理各种存取方式

楼主: erspicu (.)   2016-12-11 00:13:58
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
作者: jizang (阿鲁米)   2016-12-11 11:37:00
作者: name2name2 (yang~hi)   2016-12-15 22:49:00

Links booklink

Contact Us: admin [ a t ] ucptt.com