gpt4 book ai didi

c++ - Microsoft Windows 7 Pro 上的实时应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 14:15:54 25 4
gpt4 key购买 nike

在尝试了很多东西之后,我打开了这个新线程。我的应用程序(VS2010 上的 C++)必须抓取图像、制作图像、通过 UDP 发送结果。问题是频率:200次/秒。所以我有一台相机,可以在双缓冲区中以 200Hz 的频率记录图像,我必须在不到 5 毫秒的时间内制作出图像。该应用程序在 99,999% 的时间内工作,但我认为 Win7 Pro 取消了我的实时优先级,因此在 100000 个案例中有 1 个出现问题。看msdn论坛之类的,我只能用:

  1. SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);以管理员权限启动进程时获得进程的实时优先级
  2. SetThreadPriority(HANDLE, THREAD_PRIORITY_ABOVE_NORMAL);或 THREAD_PRIORITY_HIGHEST 或 THREAD_PRIORITY_TIME_CRITICAL。

现在,我有 5 个线程由我 (_beginthreadex) 启动,还有几个线程在相机的已编译 DLL 中启动。我认为,如果我将 Time Critical 优先级设置为我的所有 5 个线程,那么它们中没有一个比其他线程具有更高的优先级。

所以我有两个问题:

  • 我可以在没有 Windows 延迟的情况下以 200 Hz 的频率工作吗?
  • 您对我的话题设置有什么建议吗?

谢谢!!再见保罗

最佳答案

哦,我会为此使用两个以上的缓冲区。一个包含 200 个图像对象的池似乎是更好的选择。

总体而言,您可以承受多少延迟?视频流总是一样的故事 - 您可以拥有一致的、无暂停的操作或低延迟,但不能同时拥有这两者。

客户端视频图像缓存队列有多大?

编辑:

'我必须每 5 毫秒发送一次 UDP 数据报':((

好的,所以你有一个图像输出队列,其中有一个 5 毫秒循环的 UDP 发送线程,是吗?队列绝不能为空。听起来确实像阐述是瓶颈。

您是否有 [核心数 +] 线程池来进行细化?

关于c++ - Microsoft Windows 7 Pro 上的实时应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11360287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com