【发布时间】:2012-06-29 20:57:45
【问题描述】:
我正在尝试寻找最快的方式来导出带有处理的 PNG 序列或影片。我正在捕获 Kinect 数据,目前,在每个绘图调用中,我正在使用:
saveFrame("output/fames####.png");
但这太慢了。有什么我可以做的更快的吗?
我正在使用 simple-openni 作为 kinect 提要。
【问题讨论】:
标签: video image-processing kinect openni
我正在尝试寻找最快的方式来导出带有处理的 PNG 序列或影片。我正在捕获 Kinect 数据,目前,在每个绘图调用中,我正在使用:
saveFrame("output/fames####.png");
但这太慢了。有什么我可以做的更快的吗?
我正在使用 simple-openni 作为 kinect 提要。
【问题讨论】:
标签: video image-processing kinect openni
您可以尝试保存到.oni format 并且已经有一个SimpleOpenNI Sample 用于录制和播放。尽管这应该使用大量内存,但我想它可能仍然比 saveFrame() 快
使用 .oni 格式的优点是您可以轻松处理使用 SimpleOpeni 记录的节点(例如,可以在 .oni 记录上测试骨骼/手部跟踪或其他功能)。如果你需要图片,应该有办法extract/parse .oni文件
【讨论】:
您需要多长时间来处理/编码一帧(以及您可以接受的时间)?您可以尝试缓冲数据并由固定数量的工作线程异步处理。否则,您将不得不求助于捕获视频,因为安装的编解码器可以使用基于硬件加速/优化 CPU 的编码。
编辑:要吸收编码延迟,您可以使用Circular Buffer 转储需要编码的帧。然后,启动并行编码一组帧的Tasks。完成后,查看缓冲区中是否有帧并处理它们。
【讨论】:
这可能为时已晚,但如果将它们保存为 tif 而不是 png,您将获得更好的性能。
【讨论】: