将图像从摄像机保存到硬盘

时间:2014-02-11 22:26:16

标签: c++ video real-time

我有一个Firewire相机,其驱动程序软件将输入图像存入16个图像的循环缓冲区。我想避免重新缓冲这些图像,并尽可能快地将它们写入磁盘。所以我更愿意在填充时将每个缓冲区的指针排入队列,并且有一个单独的磁盘写入线程,它在传入的图像之前保持足够远,以确保它会在传入的图像覆盖它们之前将它们写入磁盘。

显然这取决于图像大小和帧速率......但原则上,对于每秒30帧的VGA图像,我们讨论的是需要写入27.6 MB /秒。这似乎是可以实现的,特别是如果写入线程可以决定丢弃偶尔的帧以在传入图像之前保持足够远,并且如果该策略失败,则至少检测到覆盖使图像无效,并且适当地发出信号(例如,完成后删除文件。)

欢迎评论这种策略的有效性......但我真正想知道的是,应该使用磁盘写入功能来最大限度地提高磁盘写入速率。例如。 CreateFile()使用FILE_FLAG_NO_BUFFERING + WriteFile()?

0 个答案:

没有答案