最近在尝试使用OpenMP多线程来降低OpenCV进行视频处理的时间,具体思路如下:
OpenMP分开两个线程(section),一个线程用作当前帧的图像处理(其间用到了OpenCL单核运算),处理完后调用OpenCV的imshow进行显示,另外一个线程用作读取下一帧图像。
两个section中如果单纯输入printf语句,其中一个线程加上延时usleep,两个线程运行正常(section 1 … section 2 …)
现在的问题是:
如果加上OpenCV显示的话,处理几次之后,线程就卡住了,卡在了OpenCV下一次显示的位置,不会再运行下去。请问这是为什么?或者有什么其他结构可以实现我的想法吗,感谢。
Shine:
请检查一下有没有使用EDMA搬移数据。