例如,我正在对视频的每一帧进行一些图像处理工作。
每帧使用200ms进行处理,包括写入,处理和阅读。 并且fps是25,在这种情况下每两帧#f;距离是40ms。然后处理太慢,无法显示连续的结果。
所以这是我的想法,我使用多队列进行这项工作。
在CPU部分中,
while(video is not over)
{
1. read the frame0;
processing the **frame0** using **queue0**;
wait 40 ms;
2. read the frame1;
processing the frame1 using **queue1**;
wait 40 ms;
3.4.5.
...(after 5 frames(just about the 200ms's processing time))
6. download the **frame0**'s result.
7. read the frame5;
processing the frame5 using **queue0**;
wait 40 ms;
...
}
代码意味着,我使用不同的队列来阅读和处理视频中的同一帧。
然而,我的实验结果更快,但速度提高了2倍,但速度并不快。
谁能告诉我如何处理它?谢谢!
答案 0 :(得分:1)
假设你有一台设备,这里有一些想法: