Jump to content

GStreamer Encoding Latency in NVIDIA Jetson Platforms: Difference between revisions

m
no edit summary
mNo edit summary
mNo edit summary
Line 1: Line 1:
<seo title="GStreamer Encoding in Jetson | GStreamer Encoding Latency | RidgeRun" titlemode="replace" keywords=" GStreamer, Linux SDK, Linux BSP,  Embedded Linux, Device Drivers, NVIDIA, Jetson, TX1, TX2, Jetson TX1, Jetson TX2, Xavier, NVIDIA Jetson Xavier, NVIDIA Jetson Xavier NX, Jetson Xavier, Xilinx, TI, NXP, i.MX8, i.MX6, IMX6, IMX8, Jetson Xavier NX, Jetson Nano, NVIDIA Jetson Orin, Embedded Linux driver development, Linux Software development, Embedded Linux SDK, Embedded Linux Application development, GStreamer Multimedia Framework, Encoding, GStreamer Encoding, H264 encoding in Jetson, H264, H265, H264 Encoding latency, H265 Encoding latecncy, GStreamer Encoding Latency"  description="This page is about latency or processing time of the GStreamer hardware-accelerated encoders in Jetson platforms"></seo>
<seo title="GStreamer Encoding in Jetson | GStreamer Encoding Latency | RidgeRun" titlemode="replace" keywords=" GStreamer, Linux SDK, Linux BSP,  Embedded Linux, Device Drivers, NVIDIA, Jetson, TX1, TX2, Jetson TX1, Jetson TX2, Xavier, NVIDIA Jetson Xavier, NVIDIA Jetson Xavier NX, Jetson Xavier, Xilinx, TI, NXP, i.MX8, i.MX6, IMX6, IMX8, Jetson Xavier NX, Jetson Nano, NVIDIA Jetson Orin, Embedded Linux driver development, Linux Software development, Embedded Linux SDK, Embedded Linux Application development, GStreamer Multimedia Framework, Encoding, GStreamer Encoding, H264 encoding in Jetson, H264, H265, H264 Encoding latency, H265 Encoding latency, GStreamer Encoding Latency, OMX, H264 codec, Jetpack 4.5, gst-omx, H265 codec, Jetpack 3.3 OMX, Jetpack 3.3.3, Jetpack 4.5.1"  description="This page is about latency or processing time of the GStreamer hardware-accelerated encoders in Jetson platforms"></seo>




Line 62: Line 62:
</ul></div>
</ul></div>


We can see that there is no real difference between baseline and main profile, but a high profile increases significantly the maximum processing time of the encoder:
We can see that there is no real difference between the baseline and main profile, but a high profile increases significantly the maximum processing time of the encoder:


{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none; text-align:center;"
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none; text-align:center;"
Line 106: Line 106:
</ul></div>
</ul></div>


We can see that there are less peaks in the plot, but also that the average processing time increased a little bit:
We can see that there are fewer peaks in the plot, but also that the average processing time increased a little bit:


{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none; text-align:center;"
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none; text-align:center;"
Line 143: Line 143:
==== H265 ====
==== H265 ====


As per the H265 codec in this newer release the results are the following:
As per the H265 codec in this newer release, the results are the following:


<div><ul>  
<div><ul>  
Line 164: Line 164:
=== Jetpack 4.5 V4L2 (TX2) ===
=== Jetpack 4.5 V4L2 (TX2) ===


NVIDIA has reported in several posts that OMX encoders are deprecated, therefore they recommend to use the V4L2 encoders '''nvv4l2h264enc''' and '''nvv4l2h265enc''' in newer releases. The base pipelines for these are:
NVIDIA has reported in several posts that OMX encoders are deprecated, therefore they recommend using the V4L2 encoders '''nvv4l2h264enc''' and '''nvv4l2h265enc''' in newer releases. The base pipelines for these are:


The starting point pipelines are the following:
The starting point pipelines are the following:
Line 244: Line 244:
== Quality Tests ==
== Quality Tests ==


For these tests the main focus was to compare results between different configurations on the OMX and V4L2 encoders for H264 and H265 codecs. However, quality is hard to measure in an objective way, therefore we include some visual results for you to evaluate.
For these tests, the main focus was to compare results between different configurations on the OMX and V4L2 encoders for H264 and H265 codecs. However, quality is hard to measure in an objective way, therefore we include some visual results for you to evaluate.


The tests were performed modifying the same configurations mentioned in the latency section and using the 1080p resolution.
The tests were performed by modifying the same configurations mentioned in the latency section and using the 1080p resolution.


=== Different Profiles ===
=== Different Profiles ===
Line 266: Line 266:
=== Different Bitrate Control ===
=== Different Bitrate Control ===


The bitrate control was another relevant property to test, so we tried to set both encoders to use variable (VBR) and constant (CBR) bitrates, however it didn't seem to affect the H264 quality a lot.
The bitrate control was another relevant property to test, so we tried to set both encoders to use variable (VBR) and constant (CBR) bitrates, however, it didn't seem to affect the H264 quality a lot.


==== H264 ====
==== H264 ====
Line 326: Line 326:
=== OMX vs V4L2 ===
=== OMX vs V4L2 ===


Finally, we compare both OMX and V4L2 encoders. They both have similar results on H264, however in H265 it seems that V4L2 has a bit better quality.
Finally, we compare both OMX and V4L2 encoders. They both have similar results on H264, however, in H265 it seems that V4L2 has a bit better quality.




Cookies help us deliver our services. By using our services, you agree to our use of cookies.