【图像处理】 增加程序速度的方法

1. stack(栈) heap(堆) 和全局区

测试BGR转YUV  的表在stack 和 heap 

2. 查找表   部分查找表  和3D查找表  速度比较

 

3. 查找表放在堆上和栈上的速度比较

 

4. BGR转YUV  使用三种加速方法的比较   TBB, 部分查表法, 3D查表法,  SSE指令集,shared_ptr

 TBB:

semi  lookup-table :

3D loolup table :

SSE :

shared_ptr :

 

 

 

5.  BGR转YUV   libyuv 和 opencv 速度比较:

//9.18ms for win64 and 1.44ms for win32 both in Release mode .

//1.0 ms for linux-64
//libyuv::RGB24ToI420(src.data, 3 * src.cols, yuv.data[0], yuv.stride[0], yuv.data[1], yuv.stride[1], yuv.data[2], yuv.stride[2], w, h);

//1.50ms for win64
//cvtColor(src, src_i420, CV_BGR2YUV);

//8.8ms in win64 in myself code
//cvp::trans_scale(bgr, yuv);

 

 

 

注意点:

   程序的指针不要来回移动,最好只往一个方向移动

posted @   洛笔达  阅读(843)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示