## Using the Orbbec ROS package to get lower CPU usage
This section shows you how to reduce CPU usage for one or more cameras in a ROS 2 environment. This method only works with Gemini 330 series cameras, and the firmware version needs to be above 1.4.10(`device_preset `is set to Default).
The example launch files used in this section are `gemini_330_series_lower_cpu_usage.launch.py` and `multi_camera_lower_cpu_usage.launch.py`.
*`uvc_backend`:Global UVC Backend select on Linux,optional values: libuvc, v4l2.(v4l2 is lower)
*`color_format`:Color stream coding format.(RGB is lower)
*`depth_registration`: Enables alignment of the depth frame to the color frame.(align_mode is set to HW lower)
*`enable_point_cloud`:Enables the point cloud
*`enable_colored_point_cloud`:Enables the RGB point cloud
*`filter`:decimation_filter,hdr_merge,sequenced_filter,threshold_filter,hardware_noise_removal_filter,noise_removal_filter,spatial_filter,temporal_filter,hole_filling_filter.(hardware_noise_removal_filter is lower)
> Since different machines and different software environments will result in different CPU usage, the CPU improvement rate is calculated based on the device's CPU benchmark.
> A comparing B:
> `CPU improvement rate=(CPUA-CPUB)/CPUB*100`
In this example, we used two different video stream resolutions as test benchmarks to provide a performance comparison between lower and higher resolutions.(Currently, data is only provided for `uvc_backend`, `color_format`, and some `filter`)
libuvc comparing v4l2 In the same environment, CPU improvement rate is ***13.1%***
* libuvc is ***72.3%***
* v4l2 is ***62.8%***
##### color_format
ROS2 color stream sets MJPG encoding format and decodes it to RGB comparing RGB encoding format (including YUYV format to RGB conversion operation cost).The CPU improvement rate under the libuvc protocol is ***14.2%*** the CPU improvement rate under the v4l2 protocol is ***30.8%***
* libuvc:RGB encoding format is ***63.3%***,MJPG encoding format and decoded into RGB is ***72.3%***
* v4l2:RGB encoding format is ***48%***,MJPG encoding format and decoded into RGB is ***62.8%***
##### filter
The color stream setting RGB encoding and MJPG have no effect on filtering and are basically the same. The CPU usage of the depth stream is basically the same under the configuration of 424*266 15fps.
libuvc comparing v4l2 In the same environment, CPU improvement rate is ***53.9%***
* libuvc is ***182.8%***
* v4l2 is ***118.8%***
##### color_format
ROS2 color stream sets MJPG encoding format and decodes it to RGB comparing RGB encoding format (including YUYV format to RGB conversion operation cost).The CPU improvement rate under the libuvc protocol is ***90.2%*** the CPU improvement rate under the v4l2 protocol is ***43.1%***
* libuvc:RGB encoding format is ***182.8%***,MJPG encoding format and decoded into RGB is ***347.7%***
* v4l2:RGB encoding format is ***118.8%***,MJPG encoding format and decoded into RGB is ***170.0%***
##### filter
When the depth stream is configured at 848*480 30fps, the CPU usage is significantly different.