-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suspending / Resuming capture to reduce permanent CPU load #6281
Comments
If you used poll_for_frames then you could manually decide when to put the CPU to sleep and the sleep duration. If you have thermal issues and it is an embedded system (suggesting that a Module Kit circuit board version of the camera is being used) then a better heat-sink component to draw away heat from the camera board might also be able to be designed using the guidelines in the 400 Series data sheet document. https://dev.intelrealsense.com/docs/intel-realsense-d400-series-product-family-datasheet Page 82 of the current edition of the data sheet contains heat sink design guidance. |
Hello, Can't recall why it did not work on the first try anyway. |
You are very welcome. :) You may be able to shave some further % off the CPU usage by making use of a feature called GLSL Processing Blocks to offload some of the CPU work onto a GPU, though it may be ineffective to do so on low-power systems. |
Is the GPU of our Celeron N3160 (I think it's PowerVR based) supported for GLSL? Is it useful for this CPU? |
GLSL is "vendor neutral", so the brand-name of the GPU should not matter, unlike CUDA offloading that only works with Nvidia GPUs. The in-built graphics of the Celeron N3160 look pretty good, according to Intel's ARK processor details site: |
@sans-ltd You are currently skipping frames using some logic. The data is still being transferred from device to your CPU and this also uses some cpu. Why don't you reduce the frame rate in the first place? Although too low framerate can blur the image. But currently if you are using say 30 FPS and skipping alternate frames, then using 15 FPS solves our problem, without a need for using frames skip logic. |
Case closed due to no further comments received. |
Issue Description
On the embedded systems of our customer, we run into thermal issues when we permanently process the 3D image of the D435i. We capture at 1280x720 but reduce on 640x30px using the decimation_filter as suggested in the rs-measure example.
So we thought about activating/deactivating the camera by starting the pipe only if needed. But this takes ~3s which is inacceptable for our use case. So we tried to block the processing_thread with a std::condition_variable. This did not help either, the CPU load was as high as before (100%).
From our application, we know when we want to capture (normally only for some seconds) so a fast resume/suspend mechansim would be great for us.
The second best solution would be to throttle down the frame rate and give the CPU some time to enter its sleep states.
Regards
Florian
The text was updated successfully, but these errors were encountered: