Files
OrbbecSDK_ROS2/.doctrees/source/5_advanced_guide/lower_cpu_usage.doctree
T

293 lines
24 KiB
Plaintext
Raw Normal View History

2025-09-15 06:27:21 +00:00
€•bŒdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”hŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ*Reducing CPU Usage with Orbbec ROS Package”h]”hŒText”“”Œ*Reducing CPU Usage with Orbbec ROS Package”…”�”}”(Œparent”hŒ _document”hŒsource”NŒline”NubaŒ
attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”uŒtagname”hhKhh hŒ_/home/runner/work/OrbbecSDK_ROS2/OrbbecSDK_ROS2/docs/source/5_advanced_guide/lower_cpu_usage.md”ubhŒ paragraph”“”)�”}”(hŒÝThis document outlines strategies for minimizing CPU usage in the OrbbecSDK_ROS2 v2 environment when using Gemini 330 series cameras. The firmware version must be no lower than 1.4.10, and device should be set to Default.”h]”(hŒBThis document outlines strategies for minimizing CPU usage in the ”…”�”}”(hh.hhhNhNubhŒstrong”“”)�”}”(hŒOrbbecSDK_ROS2 v2”h]”(hŒ OrbbecSDK”…”�”}”(hh8hhhNhNubhŒ_”…”�”}”(hh8hhhNhNubhŒROS2 v2”…”�”}”(hh8hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hh.hhhh+hKubhŒ environment when using ”…”�”}”(hh.hhhNhNubh7)�”}”(hŒGemini 330 series cameras”h]”hŒGemini 330 series cameras”…”�”}”(hhRhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hh.hhhh+hKubhŒ. The firmware version must be ”…”�”}”(hh.hhhNhNubh7)�”}”(hŒno lower than 1.4.10”h]”hŒno lower than 1.4.10”…”�”}”(hhdhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hh.hhhh+hKubhŒ, and ”…”�”}”(hh.hhhNhNubhŒliteral”“”)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hhxhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhh.hhhh+hKubhŒ should be set to ”…”�”}”(hh.hhhNhNubh7)�”}”(hŒDefault”h]”hŒDefault”…”�”}”(hhŠhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hh.hhhh+hKubhŒ.”…”�”}”(hh.hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKhh hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒ(Recommended Settings for Lower CPU Usage”h]”hŒ(Recommended Settings for Lower CPU Usage”…”�”}”(hh¥hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhKhh¢hh+ubh-)�”}”(hŒtTo achieve the lowest possible CPU usage in OrbbecSDK_ROS2, it is recommended to configure the following parameters.”h]”(hŒ5To achieve the lowest possible CPU usage in OrbbecSDK”…”�”}”(hh³hhhNhNubhŒ_”…”�”}”(hh³hhhNhNubhŒ>ROS2, it is recommended to configure the following parameters.”…”�”}”(hh³hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKhh¢hhhh+ubhŒraw”“”)�”}”(hXt<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Parameter</th>
<th style="text-align: center;">Recommendation</th>
<th style="text-align: center;">Note</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"><code>uvc_backend</code></td>
<td style="text-align: center;"><code>v4l2</code></td>
<td style="text-align: center;">Lower CPU usage compared to <code>libuvc</code></td>
</tr>
<tr>
<td style="text-align: center;"><code>color_format</code></td>
<td style="text-align: center;"><code>RGB</code></td>
<td style="text-align: center;">Lower CPU usage than <code>MJPG</code></td>
</tr>
<tr>
<td style="text-align: center;"><code>filter</code></td>
<td style="text-align: center;">Only <code>hardware_noise_removal_filter</code></td>
<td style="text-align: center;">Other filters significantly increase CPU usage</td>
</tr>
</tbody>
</table>”h]”hXt<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Parameter</th>
<th style="text-align: center;">Recommendation</th>
<th style="text-align: center;">Note</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"><code>uvc_backend</code></td>
<td style="text-align: center;"><code>v4l2</code></td>
<td style="text-align: center;">Lower CPU usage compared to <code>libuvc</code></td>
</tr>
<tr>
<td style="text-align: center;"><code>color_format</code></td>
<td style="text-align: center;"><code>RGB</code></td>
<td style="text-align: center;">Lower CPU usage than <code>MJPG</code></td>
</tr>
<tr>
<td style="text-align: center;"><code>filter</code></td>
<td style="text-align: center;">Only <code>hardware_noise_removal_filter</code></td>
<td style="text-align: center;">Other filters significantly increase CPU usage</td>
</tr>
</tbody>
</table>”…”�”}”hhËsbah}”(h ]”h"]”h$]”h&]”h(]”Œformat”Œhtml”Œ xml:space”Œpreserve”uh*hÉhK hh¢hhhh+ubeh}”(h ]”Œ(recommended-settings-for-lower-cpu-usage”ah"]”h$]”Œ(recommended settings for lower cpu usage”ah&]”h(]”uh*h hKhh hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒLaunch Files Used for Testing”h]”hŒLaunch Files Used for Testing”…”�”}”(hhèhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhK$hhåhh+ubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hhh]”h-)�”}”(hŒ+gemini_330_series_lower_cpu_usage.launch.py”h]”hw)�”}”(hŒ+gemini_330_series_lower_cpu_usage.launch.py”h]”hŒ+gemini_330_series_lower_cpu_usage.launch.py”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjhhhh+hKubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK&hhýhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK&hhøhhhh+ubhü)�”}”(hhh]”h-)�”}”(hŒ&multi_camera_lower_cpu_usage.launch.py”h]”hw)�”}”(hŒ&multi_camera_lower_cpu_usage.launch.py”h]”hŒ&multi_camera_lower_cpu_usage.launch.py”…”�”}”(hj%hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhj!hhhh+hKubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK'hjhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK'hhøhhhh+ubeh}”(h ]”h"]”h$]”h&]”h(]”uh*höhK&hhåhhhh+ubeh}”(h ]”Œlaunch-files-used-for-testing”ah"]”h$]”Œlaunch files used for testing”ah&]”h(]”uh*h hK$hh hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒTest environment”h]”hŒTest environment”…”�”}”(hjPhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhK)hjMhh+ubh
)�”}”(hhh]”(h)�”}”(hŒHardware Configuration”h]”hŒHardware Configuration”…”�”}”(hjahhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhK+hj^hh+ubh÷)�”}”(hhh]”(hü)�”}”(hhh]”h-)�”}”(hŒCPU: Intel i7-8700 @ 3.20GHz”h]”(h7)�”}”(hŒCPU”h]”hŒCPU”…”�”}”(hjyhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hjuhhhh+hKubhŒ: Intel i7-8700 @ 3.20GHz”…”�”}”(hjuhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK-hjrhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK-hjohhhh+ubhü)�”}”(hhh]”h-)�”}”(hŒ
Memory: 24 GB”h]”(h7)�”}”(hŒMemory”h]”hŒMemory”…”�”}”(hjžhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hjšhhhh+hKubhŒ: 24 GB”…”�”}”(hjšhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK.hj—hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK.hjohhhh+ubhü)�”}”(hhh]”h-)�”}”(hŒ Storage: Micron 2200S NVMe 256GB”h]”(h7)�”}”(hŒStorage”h]”hŒStorage”…”�”}”(hjÃhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hj¿hhhh+hKubhŒ: Micron 2200S NVMe 256GB”…”�”}”(hj¿hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK/hj¼hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK/hjohhhh+ubhü)�”}”(hhh]”h-)�”}”(hŒGPU: NVIDIA GeForce GTX 1660Ti”h]”(h7)�”}”(hŒGPU”h]”hŒGPU”…”�”}”(hjèhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hjähhhh+hKubhŒ: NVIDIA GeForce GTX 1660Ti”…”�”}”(hjähhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK0hjáhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK0hjohhhh+ubhü)�”}”(hhh]”h-)�”}”(hŒOS: Ubuntu22.04”h]”(h7)�”}”(hŒOS”h]”hŒOS”…”�”}”(hj
hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hj hhhh+hKubhŒ
: Ubuntu22.04”…”�”}”(hj hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK1hjhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK1hjohhhh+ubeh}”(h ]”h"]”h$]”h&]”h(]”uh*höhK-hj^hhhh+ubeh}”(h ]”Œhardware-configuration”ah"]”h$]”Œhardware configuration”ah&]”h(]”uh*h hK+hjMhhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒROS Configuration”h]”hŒROS Configuration”…”�”}”(hj<hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhK3hj9hh+ubh÷)�”}”(hhh]”(hü)�”}”(hhh]”h-)�”}”(hŒROS Version: ROS2 Humble”h]”(h7)�”}”(hŒ ROS Version”h]”hŒ ROS Version”…”�”}”(hjThhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hjPhhhh+hKubhŒ
: ROS2 Humble”…”�”}”(hjPhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK5hjMhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK5hjJhhhh+ubhü)�”}”(hhh]”h-)�”}”(hŒ"SDK Version: OrbbecSDK_ROS2 v2.2.1”h]”(h7)�”}”(hŒ SDK Version”h]”hŒ SDK Version”…”�”}”(hjyhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hjuhhhh+hKubhŒ : OrbbecSDK”…”�”}”(hjuhhhNhNubhŒ_”…”�”}”(hjuhhhNhNubhŒ ROS2 v2.2.1”…”�”}”(hjuhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK6hjrhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK6hjJhhhh+ubeh}”(h ]”h"]”h$]”h&]”h(]”uh*höhK5hj9hhhh+ubeh}”(h ]”Œros-configuration”ah"]”h$]”Œros configuration”ah&]”h(]”uh*h hK3hjMhhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒ Camera Setup”h]”hŒ Camera Setup”…”�”}”(hj°hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhK8hj­hh+ubh÷)�”}”(hhh]”(hü)�”}”(hhh]”h-)�”}”(hŒ5Devices: 2x Gemini 335, 1x Gemini 336, 1x Gemini 336L”h]”hŒ5Devices: 2x Gemini 335, 1x Gemini 336, 1x Gemini 336L”…”�”}”(hjÄhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK:hjÁhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK:hj¾hhhh+ubhü)�”}”(hhh]”h-)�”}”(hŒFirmware Version: 1.4.10”h]”hŒFirmware Version: 1.4.10”…”�”}”(hjÛhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK;hjØhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK;hj¾hhhh+ubeh}”(h ]”h"]”h$]”h&]”h(]”uh*höhK:hj­hhhh+ubeh}”(h ]”Œ camera-setup”ah"]”h$]”Œ camera setup”ah&]”h(]”uh*h hK8hjMhhhh+ubeh}”(h ]”Œtest-environment”ah"]”h$]”Œtest environment”ah&]”h(]”uh*h hK)hh hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒ
Test Setup”h]”hŒ
Test Setup”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhK=hjhh+ubh÷)�”}”(hhh]”hü)�”}”(hhh]”(h-)�”}”(hŒStream Settings:”h]”h7)�”}”(hŒStream Settings:”h]”hŒStream Settings:”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hjhhhh+hKubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK?hjhhhh+ubh÷)�”}”(hhh]”(hü)�”}”(hhh]”h-)�”}”(hŒ,Depth / IR Left / IR Right: 848×480 @ 30fps”h]”hŒ,Depth / IR Left / IR Right: 848×480 @ 30fps”…”�”}”(hj:hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK@hj7hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK@hj4hhhh+ubhü)�”}”(hhh]”h-)�”}”(hŒColor: 848×480 @ 30fps”h]”hŒColor: 848×480 @ 30fps”…”�”}”(hjQhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKAhjNhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*hûhKAhj4hhhh+ubeh}”(h ]”h"]”h$]”h&]”h(]”uh*höhK@hjhhhh+ubeh}”(h ]”h"]”h$]”h&]”h(]”uh*hûhK?hjhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*höhK?hjhhhh+ubh-)�”}”(hŒhNote: The following CPU usage data focuses on uvc_backend, color_format and various filter combinations.”h]”(hŒ.Note: The following CPU usage data focuses on ”…”�”}”(hjwhhhNhNubhw)�”}”(hŒ uvc_backend”h]”hŒ uvc_backend”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjwhhhh+hKubhŒ, ”…”�”}”(hjwhhhNhNubhw)�”}”(hŒ color_format”h]”hŒ color_format”…”�”}”(hj‘hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjwhhhh+hKubhŒ! and various filter combinations.”…”�”}”(hjwhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKChjhhhh+ubeh}”(h ]”Œ
test-setup”ah"]”h$]”Œ
test setup”ah&]”h(]”uh*h hK=hh hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒ Test Results”h]”hŒ Test Results”…”�”}”(hj´hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhKEhj±hh+ubh
)�”}”(hhh]”(h)�”}”(hŒ#uvc_backend Comparison (RGB format)”h]”(hw)�”}”(hŒ uvc_backend”h]”hŒ uvc_backend”…”�”}”(hjÉhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjÅhhhh+hKubhŒ Comparison (RGB format)”…”�”}”(hjÅhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*hhKGhjÂhh+ubhÊ)�”}”(hX‡<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">libuvc CPU Usage</th>
<th style="text-align: center;">v4l2 CPU Usage</th>
<th style="text-align: center;">Absolute Change</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">182.8%</td>
<td style="text-align: center;">118.8%</td>
<td style="text-align: center;">-64.0%</td>
</tr>
</tbody>
</table>”h]”hX‡<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">libuvc CPU Usage</th>
<th style="text-align: center;">v4l2 CPU Usage</th>
<th style="text-align: center;">Absolute Change</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">182.8%</td>
<td style="text-align: center;">118.8%</td>
<td style="text-align: center;">-64.0%</td>
</tr>
</tbody>
</table>”…”�”}”hjásbah}”(h ]”h"]”h$]”h&]”h(]”Œformat”hÚhÛhÜuh*hÉhKIhjÂhhhh+ubh-)�”}”(hXThe CPU usage can be significantly reduced with v4l2 backend. In our implementation, v4l2 works without requiring any patches to the Linux kernel, allowing users to easily switch between v4l2 and libuvc and maintaining full compatibility with standard Linux distributions.”h]”hXThe CPU usage can be significantly reduced with v4l2 backend. In our implementation, v4l2 works without requiring any patches to the Linux kernel, allowing users to easily switch between v4l2 and libuvc and maintaining full compatibility with standard Linux distributions.”…”�”}”(hjðhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKZhjÂhhhh+ubeh}”(h ]”Œ!uvc-backend-comparison-rgb-format”ah"]”h$]”Œ#uvc_backend comparison (rgb format)”ah&]”h(]”uh*h hKGhj±hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒ%color_format Comparison (MJPG vs RGB)”h]”(hw)�”}”(hŒ color_format”h]”hŒ color_format”…”�”}”(hj
hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhj hhhh+hKubhŒ Comparison (MJPG vs RGB)”…”�”}”(hj hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*hhK\hjhh+ubhÊ)�”}”(hX—<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Backend</th>
<th style="text-align: center;">MJPG CPU Usage</th>
<th style="text-align: center;">RGB CPU Usage</th>
<th style="text-align: center;">Absolute Change</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">libuvc</td>
<td style="text-align: center;">347.7%</td>
<td style="text-align: center;">182.8%</td>
<td style="text-align: center;">-164.9%</td>
</tr>
<tr>
<td style="text-align: center;">v4l2</td>
<td style="text-align: center;">170.0%</td>
<td style="text-align: center;">118.8%</td>
<td style="text-align: center;">-51.2%</td>
</tr>
</tbody>
</table>”h]”hX—<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Backend</th>
<th style="text-align: center;">MJPG CPU Usage</th>
<th style="text-align: center;">RGB CPU Usage</th>
<th style="text-align: center;">Absolute Change</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">libuvc</td>
<td style="text-align: center;">347.7%</td>
<td style="text-align: center;">182.8%</td>
<td style="text-align: center;">-164.9%</td>
</tr>
<tr>
<td style="text-align: center;">v4l2</td>
<td style="text-align: center;">170.0%</td>
<td style="text-align: center;">118.8%</td>
<td style="text-align: center;">-51.2%</td>
</tr>
</tbody>
</table>”…”�”}”hj%sbah}”(h ]”h"]”h$]”h&]”h(]”Œformat”hÚhÛhÜuh*hÉhK^hjhhhh+ubh-)�”}”(hŒ�The CPU usage can be reduced if the RGB format is selected instead of MJPG, since the decoding of MJPG image will consume the host CPU resource.”h]”hŒ�The CPU usage can be reduced if the RGB format is selected instead of MJPG, since the decoding of MJPG image will consume the host CPU resource.”…”�”}”(hj4hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKwhjhhhh+ubeh}”(h ]”Œ#color-format-comparison-mjpg-vs-rgb”ah"]”h$]”Œ%color_format comparison (mjpg vs rgb)”ah&]”h(]”uh*h hK\hj±hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒFilter Configuration Impact”h]”hŒFilter Configuration Impact”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhKyhjJhh+ubhÊ)�”}”(hX{<table border="1" class="docutils">
<thead>
<tr>
<th>Filters Applied</th>
<th>libuvc CPU Usage</th>
<th>CPU Usage Increase</th>
<th>v4l2 CPU Usage</th>
<th>CPU Usage Increase</th>
</tr>
</thead>
<tbody>
<tr>
<td>No Filter (benchmark)</td>
<td>182.8%</td>
<td>0.0%(benchmark)</td>
<td>118.8%</td>
<td>0.0%(benchmark)</td>
</tr>
<tr>
<td><code>(software)noise_removal_filter</code></td>
<td>218.0%</td>
<td>+35.2%</td>
<td>128.5%</td>
<td>+9.7%</td>
</tr>
<tr>
<td><code>(software)noise_removal_filter + spatial_filter</code></td>
<td>469.6%</td>
<td>+286.8%</td>
<td>336.7%</td>
<td>+217.9%</td>
</tr>
<tr>
<td><code>hardware_noise_removal_filter</code></td>
<td>186.3%</td>
<td>+3.5%</td>
<td>115.4%</td>
<td>-3.4%</td>
</tr>
<tr>
<td><code>hardware_noise_removal_filter + spatial_filter</code></td>
<td>251.3%</td>
<td>+68.5%</td>
<td>152.5%</td>
<td>+33.7%</td>
</tr>
</tbody>
</table>”h]”hX{<table border="1" class="docutils">
<thead>
<tr>
<th>Filters Applied</th>
<th>libuvc CPU Usage</th>
<th>CPU Usage Increase</th>
<th>v4l2 CPU Usage</th>
<th>CPU Usage Increase</th>
</tr>
</thead>
<tbody>
<tr>
<td>No Filter (benchmark)</td>
<td>182.8%</td>
<td>0.0%(benchmark)</td>
<td>118.8%</td>
<td>0.0%(benchmark)</td>
</tr>
<tr>
<td><code>(software)noise_removal_filter</code></td>
<td>218.0%</td>
<td>+35.2%</td>
<td>128.5%</td>
<td>+9.7%</td>
</tr>
<tr>
<td><code>(software)noise_removal_filter + spatial_filter</code></td>
<td>469.6%</td>
<td>+286.8%</td>
<td>336.7%</td>
<td>+217.9%</td>
</tr>
<tr>
<td><code>hardware_noise_removal_filter</code></td>
<td>186.3%</td>
<td>+3.5%</td>
<td>115.4%</td>
<td>-3.4%</td>
</tr>
<tr>
<td><code>hardware_noise_removal_filter + spatial_filter</code></td>
<td>251.3%</td>
<td>+68.5%</td>
<td>152.5%</td>
<td>+33.7%</td>
</tr>
</tbody>
</table>”…”�”}”hj[sbah}”(h ]”h"]”h$]”h&]”h(]”Œformat”hÚhÛhÜuh*hÉhK{hjJhhhh+ubh-)�”}”(hXšBased on the test results, using only the hardware_noise_removal_filter results in a negligible change in CPU usage for both libuvc (+3.5%) and v4l2 (-3.4%) compared to the no-filter benchmark, as this filter runs internally on the camera hardware. In contrast, other filters execute on the host system. Adding the spatial_filter to the hardware filter leads to a moderate increase in CPU usage, while applying the software-based noise_removal_filter —either alone or combined with spatial_filter —significantly increases CPU load. To maintain low CPU usage, it is recommended to avoid software-based filters and rely solely on the hardware_noise_removal_filter.”h]”(hŒ*Based on the test results, using only the ”…”�”}”(hjjhhhNhNubhw)�”}”(hŒhardware_noise_removal_filter”h]”hŒhardware_noise_removal_filter”…”�”}”(hjrhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjjhhhh+hKubhŒ6 results in a negligible change in CPU usage for both ”…”�”}”(hjjhhhNhNubhw)�”}”(hŒlibuvc”h]”hŒlibuvc”…”�”}”(hj„hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjjhhhh+hKubhŒ
(+3.5%) and ”…”�”}”(hjjhhhNhNubhw)�”}”(hŒv4l2”h]”hŒv4l2”…”�”}”(hj–hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjjhhhh+hKubhŒ§ (-3.4%) compared to the no-filter benchmark, as this filter runs internally on the camera hardware. In contrast, other filters execute on the host system. Adding the ”…”�”}”(hjjhhhNhNubhw)�”}”(hŒspatial_filter”h]”hŒspatial_filter”…”�”}”(hj¨hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjjhhhh+hKubhŒe to the hardware filter leads to a moderate increase in CPU usage, while applying the software-based ”…”�”}”(hjjhhhNhNubhw)�”}”(hŒnoise_removal_filter”h]”hŒnoise_removal_filter”…”�”}”(hjºhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjjhhhh+hKubhŒ" —either alone or combined with ”…”�”}”(hjjhhhNhNubhw)�”}”(hŒspatial_filter”h]”hŒspatial_filter”…”�”}”(hjÌhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjjhhhh+hKubhŒŠ —significantly increases CPU load. To maintain low CPU usage, it is recommended to avoid software-based filters and rely solely on the ”…”�”}”(hjjhhhNhNubhw)�”}”(hŒhardware_noise_removal_filter”h]”hŒhardware_noise_removal_filter”…”�”}”(hjÞhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hvhjjhhhh+hKubhŒ.”…”�”}”(hjjhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK¬hjJhhhh+ubeh}”(h ]”Œfilter-configuration-impact”ah"]”h$]”Œfilter configuration impact”ah&]”h(]”uh*h hKyhj±hhhh+ubeh}”(h ]”Œ test-results”ah"]”h$]”Œ test results”ah&]”h(]”uh*h hKEhh hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒFurther Optimizationa”h]”hŒFurther Optimizationa”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhK®hjhh+ubhÊ)�”}”(hX«<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Parameter</th>
<th style="text-align: center;">Recommendation</th>
<th style="text-align: center;">Note</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"><code>depth_registration</code></td>
<td style="text-align: center;"><code>false</code> or <code>true</code> with <code>align_mode=HW</code></td>
<td style="text-align: center;">Software alignment consumes more CPU</td>
</tr>
<tr>
<td style="text-align: center;"><code>enable_point_cloud</code></td>
<td style="text-align: center;"><code>false</code></td>
<td style="text-align: center;">Disabling point cloud reduces CPU usage</td>
</tr>
<tr>
<td style="text-align: center;"><code>enable_colored_point_cloud</code></td>
<td style="text-align: center;"><code>false</code></td>
<td style="text-align: center;">Disabling colored point cloud reduces CPU usage</td>
</tr>
</tbody>
</table>”h]”hX«<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Parameter</th>
<th style="text-align: center;">Recommendation</th>
<th style="text-align: center;">Note</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"><code>depth_registration</code></td>
<td style="text-align: center;"><code>false</code> or <code>true</code> with <code>align_mode=HW</code></td>
<td style="text-align: center;">Software alignment consumes more CPU</td>
</tr>
<tr>
<td style="text-align: center;"><code>enable_point_cloud</code></td>
<td style="text-align: center;"><code>false</code></td>
<td style="text-align: center;">Disabling point cloud reduces CPU usage</td>
</tr>
<tr>
<td style="text-align: center;"><code>enable_colored_point_cloud</code></td>
<td style="text-align: center;"><code>false</code></td>
<td style="text-align: center;">Disabling colored point cloud reduces CPU usage</td>
</tr>
</tbody>