Fix camera limitation due to jpg encoding #171
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed that the camera sensor was limited in resolution and frequency, by default is set to
640x480 10fps
, when trying to increase that the frame rate was falling down to6/7fps
on a Quadro RTX 5000.After looking in the code and searching for a performance bottleneck with unity profiling tool, I find out that the image where send in
CompressedImage
format made fromTexture2D.EncodeToJPG()
.This method was intended for screenshots purpose and not real-time encoding.
Following ZeroSimROSUnity camera sensor implementation, a good way is to simply send raw buffer without any encoding, allowing high quality.
Now running the simulation at
140fps
in the demo scene, using camera sensor of1920x1080 at 20fps
(Running on Ubuntu 22.04 with Quadro RTX 5000).Warning
The depth camera may be broken I didn't check.