Difference between revisions of "Sony IMX327 Linux Driver"

From RidgeRun Developer Connection
Jump to: navigation, search
(Using the Driver)
m
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<seo title="IMX327 Linux Driver for NVIDIA Jetson | Sony IMX327 Linux Driver | RidgeRun" titlemode="replace" keywords="GStreamer, Linux SDK, Linux BSP,  Embedded Linux, Device Drivers, Nvidia, Xilinx, TI, NXP, Freescale, Embedded Linux driver development, Linux Software development, Embedded Linux SDK, Embedded Linux Application development, GStreamer Multimedia Framework, IMX327 Jetson Nano, IMX327, V4L2 Driver, Sony IMX327, Sony IMX327 Linux Driver, IMX327 Linux driver, Sony IMX327 Linux Driver, Sony, Sony IMX327, IMX 327." description="Check out our comprehensive overview and features of the Sony IMX327 Linux Driver for NVIDIA Jetson!."></seo>
+
<seo title="IMX327 Linux Driver for NVIDIA Jetson | Sony IMX327 Linux Driver | RidgeRun" titlemode="replace" metakeywords="GStreamer, Linux SDK, Linux BSP,  Embedded Linux, Device Drivers, Nvidia, Xilinx, TI, NXP, Freescale, Embedded Linux driver development, Linux Software development, Embedded Linux SDK, Embedded Linux Application development, GStreamer Multimedia Framework, IMX327 Jetson Nano, IMX327, V4L2 Driver, Sony IMX327, Sony IMX327 Linux Driver, IMX327 Linux driver, Sony IMX327 Linux Driver, Sony, Sony IMX327, IMX 327." metadescription="Check out our comprehensive overview and features of the Sony IMX327 Linux Driver for NVIDIA Jetson!."></seo>
  
 
<table>
 
<table>
Line 279: Line 279:
  
 
* NVIDIA Jetson Nano
 
* NVIDIA Jetson Nano
 +
* Google coral (for more information about this driver check our [[https://developer.ridgerun.com/wiki/index.php/Coral_from_Google/Camera_Drivers/Introduction|Google Coral]] documentation )
  
 
== Features Included in the Driver ==
 
== Features Included in the Driver ==
Line 293: Line 294:
 
! SDK Support
 
! SDK Support
 
|-
 
|-
| 4208x3120@15fps
+
| 1920x1080@30fps
| 2 Lanes
+
| 4 Lanes, RAW12, RGGB
| L4T 32.4.3 / Jetpack 4.4, L4T 32.5 / Jetpack 4.5
 
|-
 
| 2104x1560@29fps
 
| 2 Lanes  
 
| L4T 32.4.3 / Jetpack 4.4, L4T 32.5 / Jetpack 4.5
 
|-
 
| 512x512@86fps
 
| 2 Lanes
 
| L4T 32.4.3 / Jetpack 4.4, L4T 32.5 / Jetpack 4.5
 
|-
 
| GRBG10 capture
 
| 4208x3120@15fps only
 
| L4T 32.5 / Jetpack 4.5, L4T 32.4.3 / Jetpack 4.4
 
|-
 
| GRBG8 capture
 
| 4208x3120@15fps only
 
| L4T 32.5 / Jetpack 4.5, L4T 32.4.3 / Jetpack 4.4
 
|-
 
| GREY10 capture
 
|
 
| L4T 32.5 / Jetpack 4.5, L4T 32.4.3 / Jetpack 4.4
 
|-
 
| GREY8 capture
 
 
| L4T 32.5 / Jetpack 4.5, L4T 32.4.3 / Jetpack 4.4
 
|-
 
| V4l2 Media Controller driver
 
 
| L4T 32.4.3 / Jetpack 4.4, L4T 32.5 / Jetpack 4.5
 
|-
 
| ISP usage through NvArgusCameraSrc
 
| Only GRBG10 support
 
| L4T 32.4.3 / Jetpack 4.4, L4T 32.5 / Jetpack 4.5
 
|-
 
| Gain control
 
|
 
| L4T 32.4.3 / Jetpack 4.4, L4T 32.5 / Jetpack 4.5
 
|-
 
| Exposure control
 
|
 
| L4T 32.4.3 / Jetpack 4.4, L4T 32.5 / Jetpack 4.5
 
|-
 
| Window control
 
|
 
| L4T 32.4.3 / Jetpack 4.4, L4T 32.5 / Jetpack 4.5
 
|-
 
| 2 simultaneous cameras
 
 
| L4T 32.5 / Jetpack 4.5, L4T 32.4.3 / Jetpack 4.4
 
|-
 
| Reset controls to default value after capture
 
 
 
| L4T 32.5 / Jetpack 4.5
 
| L4T 32.5 / Jetpack 4.5
|}<!--
 
-->
 
|-
 
! TX2
 
|<!--
 
-->
 
{| class="wikitable sortable mw-collapsible mw-collapsed" style="width:100%; margin:0;"
 
! Feature
 
! Details
 
! SDK Support
 
|-
 
| 1920x1080@60fps
 
| 4 Lanes
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| 3840x2160@30fps
 
| 4 Lanes
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| 4208x3120@30fps
 
| 4 Lanes
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| Gain control
 
|
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| Exposure control
 
|
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| Framerate control
 
|
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| White balance control
 
| Digital gain
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| Window control
 
|
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| OTPM 
 
| Support Write/Read/Invalidate operations. OTPM stores camera module calibration data.
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| 2 simultaneous cameras
 
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| GRGB10 capture
 
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| Temperature reading
 
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| V4l2 Media Controller driver
 
 
| L4T 32.2.1 / Jetpack 4.2.2
 
|-
 
| ISP usage through NvArgusCameraSrc
 
 
| L4T 32.2.1 / Jetpack 4.2.2
 
 
|-
 
|-
 
|}<!--
 
|}<!--
Line 426: Line 309:
 
* Follow the instructions in [[Compiling_Jetson_TX1/TX2_source_code#Download_the_kernel_source_code | (Downloading sources)]] to get the kernel source code.
 
* Follow the instructions in [[Compiling_Jetson_TX1/TX2_source_code#Download_the_kernel_source_code | (Downloading sources)]] to get the kernel source code.
  
* Once you have the source code, apply the following three patches in order to add the changes required for the AR1335 camera at kernel and dtb level.
+
* Once you have the source code, apply the following the patches in order to add the changes required for the IMX327 camera at kernel and dtb level.
  
 
<pre>
 
<pre>
4.2.2_ar1335.patch
+
4.5_imx327.patch
 
</pre>
 
</pre>
  
 
* Follow the instructions in [[Compiling_Jetson_TX1/TX2_source_code#Build_Kernel | (Build Kernel)]] for building the kernel, and then flash the image.
 
* Follow the instructions in [[Compiling_Jetson_TX1/TX2_source_code#Build_Kernel | (Build Kernel)]] for building the kernel, and then flash the image.
  
Make sure to enable AR1335 driver support:
+
Make sure to enable IMX327 driver support:
 
<pre>
 
<pre>
 
make menuconfig
 
make menuconfig
Line 443: Line 326:
 
   -> Multimedia support                                                                                           
 
   -> Multimedia support                                                                                           
 
     -> NVIDIA overlay Encoders, decoders, sensors and other helper chips  
 
     -> NVIDIA overlay Encoders, decoders, sensors and other helper chips  
       -> <*> AR1335 camera sensor support
+
       -> <M> IMX327 camera sensor support
 
</pre>
 
</pre>
  
==Using the Driver==
+
And to select the runtime device tree blob by editing the <code>$JETSON_L4T/rootfs/boot/extlinux/extlinux.conf</code> to add the "FDT" line:
 
+
<pre>
=== GStreamer Examples ===
+
TIMEOUT 30
 +
DEFAULT primary
  
==== Capture and Display ====
+
MENU TITLE L4T boot options
  
* 3840x2160@30fps GRBG10
+
LABEL primary
<pre style="background:#d6e4f1">
+
      MENU LABEL primary kernel
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)NV12, framerate=(fraction)30/1' ! autovideosink
+
      LINUX /boot/Image
 +
      INITRD /boot/initrd
 +
      FDT /boot/tegra210-p3448-0000-p3449-0000-a02.dtb
 +
      APPEND ${cbootargs} quiet
 
</pre>
 
</pre>
  
* 4208x3120@15fps GRBG10
+
==Using the Driver==
<pre style="background:#d6e4f1">
 
gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM), width=4208, height=3120, format=NV12, framerate=15/1' ! nvoverlaysink
 
</pre>
 
  
* 4208x3120@15fps GRBG8
+
=== GStreamer Examples ===
<pre style="background:#d6e4f1">
 
gst-launch-1.0 v4l2src ! "video/x-bayer, format=grbg, width=4208, height=3120, framerate=15/1" ! capssetter caps="video/x-bayer, format=grbg, width=4224, height=3120" ! bayer2rgb ! videoconvert ! xvimagesink
 
</pre>
 
  
* 4208x3120@15fps GREY8
+
==== Capture and Display ====
<pre style="background:#d6e4f1">
 
gst-launch-1.0 v4l2src ! "video/x-raw,width=4208,height=3120,format=GRAY8" ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink sync=0
 
</pre>
 
 
 
* 2104x1560@29fps GREY8
 
<pre style="background:#d6e4f1">
 
gst-launch-1.0 v4l2src ! "video/x-raw,width=2104,height=1560,format=GRAY8" ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink sync=0
 
</pre>
 
  
* 512x512@86fps GREY8
+
* 1920x1080@30fps RGGB12
 
<pre style="background:#d6e4f1">
 
<pre style="background:#d6e4f1">
gst-launch-1.0 v4l2src ! "video/x-raw,width=512,height=512,format=GRAY8" ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink sync=0
+
gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=30/1' ! nvvidconv ! xvimagesink
 
</pre>
 
</pre>
  
Line 485: Line 358:
  
 
<pre style="background:#d6e4f1">
 
<pre style="background:#d6e4f1">
CAPS="video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)NV12, framerate=(fraction)30/1"
+
CAPS="video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1"
  
gst-launch-1.0 nvarguscamerasrc sensor-id=0 num-buffers=500 ! "video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)NV12, framerate=(fraction)30/1" ! omxh264enc ! mpegtsmux ! filesink location=test.ts
+
gst-launch-1.0 nvarguscamerasrc sensor-id=0 num-buffers=500 ! "video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1" ! omxh264enc ! mpegtsmux ! filesink location=test.ts
 
</pre>
 
</pre>
  
The sensor will capture in the 3840x2160@30 mode and the pipeline will encode the video and save it into test.ts file.
+
The sensor will capture in the 1920x1080@30fps mode and the pipeline will encode the video and save it into test.ts file.
  
 
=== Performance ===
 
=== Performance ===
Line 496: Line 369:
 
==== ARM Load ====
 
==== ARM Load ====
  
Tegrastats display the following output when capturing with the sensor driver used in the TX2 platform:
+
Tegrastats display the following output when capturing with the sensor driver used in the Jetson Nano platform:
 +
 
 
<pre>
 
<pre>
RAM 1263/7855MB (lfb 1501x4MB) CPU [0%@2035,off,off,0%@2035,0%@2035,0%@2035]  
+
RAM 1167/3963MB (lfb 522x4MB) CPU [25%@1132,16%@1132,9%@1132,12%@1132]
RAM 1263/7855MB (lfb 1501x4MB) CPU [23%@960,off,off,17%@960,16%@960,23%@960]  
+
RAM 1168/3963MB (lfb 522x4MB) CPU [28%@921,12%@921,9%@921,13%@921]
RAM 1263/7855MB (lfb 1500x4MB) CPU [17%@345,off,off,17%@345,18%@345,20%@345]  
+
RAM 1167/3963MB (lfb 522x4MB) CPU [23%@921,12%@921,13%@921,10%@921]
RAM 1263/7855MB (lfb 1500x4MB) CPU [20%@345,off,off,16%@345,18%@345,15%@345]  
+
RAM 1167/3963MB (lfb 522x4MB) CPU [28%@921,8%@921,12%@921,12%@921]
RAM 1263/7855MB (lfb 1500x4MB) CPU [19%@345,off,off,13%@345,15%@345,14%@345]  
+
RAM 1169/3963MB (lfb 522x4MB) CPU [26%@1479,9%@1479,16%@1479,9%@1479]
RAM 1263/7855MB (lfb 1500x4MB) CPU [20%@345,off,off,15%@345,12%@345,15%@345]  
+
RAM 1167/3963MB (lfb 522x4MB) CPU [28%@921,13%@921,9%@921,16%@921]
RAM 1263/7855MB (lfb 1500x4MB) CPU [19%@345,off,off,15%@345,15%@345,16%@345]  
+
RAM 1168/3963MB (lfb 522x4MB) CPU [23%@1036,13%@1036,14%@1036,7%@1036]
RAM 1263/7855MB (lfb 1500x4MB) CPU [20%@345,off,off,18%@345,18%@345,17%@345]  
+
RAM 1167/3963MB (lfb 522x4MB) CPU [25%@921,12%@921,9%@921,11%@921]
RAM 1263/7855MB (lfb 1500x4MB) CPU [16%@345,off,off,15%@345,27%@345,17%@345]  
+
RAM 1168/3963MB (lfb 522x4MB) CPU [25%@921,13%@921,16%@921,12%@921]
RAM 1263/7855MB (lfb 1500x4MB) CPU [19%@345,off,off,18%@345,17%@345,19%@345]  
+
RAM 1169/3963MB (lfb 522x4MB) CPU [27%@921,12%@921,8%@921,13%@921]
 +
RAM 1168/3963MB (lfb 522x4MB) CPU [24%@921,8%@921,13%@921,10%@921]
 +
RAM 1169/3963MB (lfb 522x4MB) CPU [29%@921,13%@921,15%@921,6%@921]
 
</pre>
 
</pre>
  
Line 513: Line 389:
 
Using the next pipeline we were able to measure the framerate for single capture with perf element:
 
Using the next pipeline we were able to measure the framerate for single capture with perf element:
 
<pre style="background:#d6e4f1">
 
<pre style="background:#d6e4f1">
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)NV12, framerate=(fraction)30/1' ! perf  ! fakesink
+
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1' ! perf  ! fakesink
 
</pre>
 
</pre>
  
 
<pre>
 
<pre>
GST-PERF INFO --> Timestamp: 0:07:19.108602798; Bps: 782; fps: 30.0  
+
GST-PERF-INFO --> timestamp: 0:44:34.324884537; bps: 0,000; mean_bps: 0,000; fps: 0,000; mean_fps: 0,000
GST-PERF INFO -->  Timestamp: 0:07:20.141189052; Bps: 782; fps: 30.3
+
GST-PERF-INFO -->  timestamp: 0:44:35.354956530; bps: 24192,000; mean_bps: 8064,000; fps: 30,095; mean_fps: 30,095
GST-PERF INFO -->  Timestamp: 0:07:21.174265435; Bps: 782; fps: 30.0
+
GST-PERF-INFO -->  timestamp: 0:44:36.355520992; bps: 241920,000; mean_bps: 66528,000; fps: 29,983; mean_fps: 30,039
GST-PERF INFO -->  Timestamp: 0:07:22.207318757; Bps: 782; fps: 30.0
+
GST-PERF-INFO -->  timestamp: 0:44:37.356864989; bps: 241920,000; mean_bps: 101606,400; fps: 29,960; mean_fps: 30,013
GST-PERF INFO -->  Timestamp: 0:07:23.240543516; Bps: 782; fps: 30.0  
+
GST-PERF-INFO -->  timestamp: 0:44:38.357433006; bps: 241920,000; mean_bps: 124992,000; fps: 29,983; mean_fps: 30,005
GST-PERF INFO -->  Timestamp: 0:07:24.273697886; Bps: 782; fps: 30.0  
+
GST-PERF-INFO -->  timestamp: 0:44:39.358908010; bps: 241920,000; mean_bps: 141696,000; fps: 29,956; mean_fps: 29,995
GST-PERF INFO -->  Timestamp: 0:07:25.306822764; Bps: 782; fps: 30.0  
+
GST-PERF-INFO -->  timestamp: 0:44:40.359357860; bps: 241920,000; mean_bps: 154224,000; fps: 29,987; mean_fps: 29,994
GST-PERF INFO -->  Timestamp: 0:07:26.340117514; Bps: 782; fps: 30.0  
+
GST-PERF-INFO -->  timestamp: 0:44:41.360617558; bps: 241920,000; mean_bps: 163968,000; fps: 29,962; mean_fps: 29,989
GST-PERF INFO -->  Timestamp: 0:07:27.373087284; Bps: 782; fps: 30.3
+
GST-PERF-INFO -->  timestamp: 0:44:42.361400607; bps: 241920,000; mean_bps: 171763,200; fps: 29,977; mean_fps: 29,988
GST-PERF INFO -->  Timestamp: 0:07:28.406069581; Bps: 782; fps: 30.3
+
GST-PERF-INFO -->  timestamp: 0:44:43.362674329; bps: 241920,000; mean_bps: 178141,091; fps: 29,962; mean_fps: 29,985
GST-PERF INFO -->  Timestamp: 0:07:29.439238457; Bps: 782; fps: 30.0
+
GST-PERF-INFO -->  timestamp: 0:44:44.363320878; bps: 241920,000; mean_bps: 183456,000; fps: 29,981; mean_fps: 29,984
GST-PERF INFO -->  Timestamp: 0:07:30.472398102; Bps: 782; fps: 30.0
+
GST-PERF-INFO -->  timestamp: 0:44:45.364541434; bps: 241920,000; mean_bps: 187953,231; fps: 29,963; mean_fps: 29,983
GST-PERF INFO -->  Timestamp: 0:07:31.472948042; Bps: 808; fps: 30.0
+
GST-PERF-INFO -->  timestamp: 0:44:46.365041950; bps: 241920,000; mean_bps: 191808,000; fps: 29,985; mean_fps: 29,983
 +
GST-PERF-INFO -->  timestamp: 0:44:47.366186373; bps: 241920,000; mean_bps: 195148,800; fps: 29,966; mean_fps: 29,981
 +
GST-PERF-INFO -->  timestamp: 0:44:48.366852845; bps: 241920,000; mean_bps: 198072,000; fps: 29,980; mean_fps: 29,981
 +
GST-PERF-INFO -->  timestamp: 0:44:49.368081920; bps: 241920,000; mean_bps: 200651,294; fps: 29,963; mean_fps: 29,980
 +
GST-PERF-INFO -->  timestamp: 0:44:50.368731947; bps: 241920,000; mean_bps: 202944,000; fps: 29,981; mean_fps: 29,980
 +
GST-PERF-INFO -->  timestamp: 0:44:51.370037391; bps: 241920,000; mean_bps: 204995,368; fps: 29,961; mean_fps: 29,979
 +
GST-PERF-INFO -->  timestamp: 0:44:52.370821395; bps: 241920,000; mean_bps: 206841,600; fps: 29,976; mean_fps: 29,979
 +
GST-PERF-INFO -->  timestamp: 0:44:53.371545430; bps: 241920,000; mean_bps: 208512,000; fps: 29,978; mean_fps: 29,979
 +
GST-PERF-INFO -->  timestamp: 0:44:54.372675500; bps: 241920,000; mean_bps: 210030,545; fps: 29,966; mean_fps: 29,978
 +
GST-PERF-INFO -->  timestamp: 0:44:55.373703465; bps: 241920,000; mean_bps: 211417,043; fps: 29,969; mean_fps: 29,978
 
</pre>
 
</pre>
 
The results show the framerate constant at 30FPS that use nvarguscamerasrc and passing frames through the ISP to convert from Bayer to YUV.
 
 
==== Latency measurement====
 
 
  
 
{{ContactUs}}
 
{{ContactUs}}
  
[[Category:Jetson]][[Category:Jetson V4L2 Drivers]][[Category:V4L2 Drivers]]
+
[[Category:Jetson]][[Category:Jetson V4L2 Drivers]][[Category:Sony]]

Latest revision as of 14:05, 17 March 2023

Error something wrong.jpg Problems running the pipelines shown on this page?
Please see our GStreamer Debugging guide for help.

RR Contact Us.png

Sony IMX327 Features

The IMX327LQR-C is a diagonal 6.46 mm (Type 1/2.8) CMOS active pixel type solid-state image sensor with a square pixel array and 2.13 M effective pixels. This chip operates with analog 2.9 V, digital 1.2 V, and interface 1.8 V triple power supply, and has low power consumption. High sensitivity, low dark current and no smear are achieved through the adoption of R, G and B primary color mosaic filters. This chip features an electronic shutter with variable charge-integration time. (Applications: Surveillance cameras, FA cameras, Industrial cameras)

Supported Platforms

  • NVIDIA Jetson Nano
  • Google coral (for more information about this driver check our [Coral] documentation )

Features Included in the Driver

Nano
Feature Details SDK Support
1920x1080@30fps 4 Lanes, RAW12, RGGB L4T 32.5 / Jetpack 4.5

Enabling the Driver

In order to use this driver, you have to patch and compile the kernel source using JetPack:

  • Once you have the source code, apply the following the patches in order to add the changes required for the IMX327 camera at kernel and dtb level.
4.5_imx327.patch
  • Follow the instructions in (Build Kernel) for building the kernel, and then flash the image.

Make sure to enable IMX327 driver support:

make menuconfig
-> Device Drivers                                                                                                                        
  -> Multimedia support                                                                                           
    -> NVIDIA overlay Encoders, decoders, sensors and other helper chips 
       -> <M> IMX327 camera sensor support

And to select the runtime device tree blob by editing the $JETSON_L4T/rootfs/boot/extlinux/extlinux.conf to add the "FDT" line:

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      FDT /boot/tegra210-p3448-0000-p3449-0000-a02.dtb
      APPEND ${cbootargs} quiet

Using the Driver

GStreamer Examples

Capture and Display

  • 1920x1080@30fps RGGB12
gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=30/1' ! nvvidconv ! xvimagesink

Video Encoding

CAPS="video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1"

gst-launch-1.0 nvarguscamerasrc sensor-id=0 num-buffers=500 ! "video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1" ! omxh264enc ! mpegtsmux ! filesink location=test.ts

The sensor will capture in the 1920x1080@30fps mode and the pipeline will encode the video and save it into test.ts file.

Performance

ARM Load

Tegrastats display the following output when capturing with the sensor driver used in the Jetson Nano platform:

RAM 1167/3963MB (lfb 522x4MB) CPU [25%@1132,16%@1132,9%@1132,12%@1132]
RAM 1168/3963MB (lfb 522x4MB) CPU [28%@921,12%@921,9%@921,13%@921]
RAM 1167/3963MB (lfb 522x4MB) CPU [23%@921,12%@921,13%@921,10%@921]
RAM 1167/3963MB (lfb 522x4MB) CPU [28%@921,8%@921,12%@921,12%@921]
RAM 1169/3963MB (lfb 522x4MB) CPU [26%@1479,9%@1479,16%@1479,9%@1479]
RAM 1167/3963MB (lfb 522x4MB) CPU [28%@921,13%@921,9%@921,16%@921]
RAM 1168/3963MB (lfb 522x4MB) CPU [23%@1036,13%@1036,14%@1036,7%@1036]
RAM 1167/3963MB (lfb 522x4MB) CPU [25%@921,12%@921,9%@921,11%@921]
RAM 1168/3963MB (lfb 522x4MB) CPU [25%@921,13%@921,16%@921,12%@921]
RAM 1169/3963MB (lfb 522x4MB) CPU [27%@921,12%@921,8%@921,13%@921]
RAM 1168/3963MB (lfb 522x4MB) CPU [24%@921,8%@921,13%@921,10%@921]
RAM 1169/3963MB (lfb 522x4MB) CPU [29%@921,13%@921,15%@921,6%@921]

Framerate

Using the next pipeline we were able to measure the framerate for single capture with perf element:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1' ! perf  ! fakesink
GST-PERF-INFO --> timestamp: 0:44:34.324884537; bps: 0,000; mean_bps: 0,000; fps: 0,000; mean_fps: 0,000
GST-PERF-INFO -->  timestamp: 0:44:35.354956530; bps: 24192,000; mean_bps: 8064,000; fps: 30,095; mean_fps: 30,095
GST-PERF-INFO -->  timestamp: 0:44:36.355520992; bps: 241920,000; mean_bps: 66528,000; fps: 29,983; mean_fps: 30,039
GST-PERF-INFO -->  timestamp: 0:44:37.356864989; bps: 241920,000; mean_bps: 101606,400; fps: 29,960; mean_fps: 30,013
GST-PERF-INFO -->  timestamp: 0:44:38.357433006; bps: 241920,000; mean_bps: 124992,000; fps: 29,983; mean_fps: 30,005
GST-PERF-INFO -->  timestamp: 0:44:39.358908010; bps: 241920,000; mean_bps: 141696,000; fps: 29,956; mean_fps: 29,995
GST-PERF-INFO -->  timestamp: 0:44:40.359357860; bps: 241920,000; mean_bps: 154224,000; fps: 29,987; mean_fps: 29,994
GST-PERF-INFO -->  timestamp: 0:44:41.360617558; bps: 241920,000; mean_bps: 163968,000; fps: 29,962; mean_fps: 29,989
GST-PERF-INFO -->  timestamp: 0:44:42.361400607; bps: 241920,000; mean_bps: 171763,200; fps: 29,977; mean_fps: 29,988
GST-PERF-INFO -->  timestamp: 0:44:43.362674329; bps: 241920,000; mean_bps: 178141,091; fps: 29,962; mean_fps: 29,985
GST-PERF-INFO -->  timestamp: 0:44:44.363320878; bps: 241920,000; mean_bps: 183456,000; fps: 29,981; mean_fps: 29,984
GST-PERF-INFO -->  timestamp: 0:44:45.364541434; bps: 241920,000; mean_bps: 187953,231; fps: 29,963; mean_fps: 29,983
GST-PERF-INFO -->  timestamp: 0:44:46.365041950; bps: 241920,000; mean_bps: 191808,000; fps: 29,985; mean_fps: 29,983
GST-PERF-INFO -->  timestamp: 0:44:47.366186373; bps: 241920,000; mean_bps: 195148,800; fps: 29,966; mean_fps: 29,981
GST-PERF-INFO -->  timestamp: 0:44:48.366852845; bps: 241920,000; mean_bps: 198072,000; fps: 29,980; mean_fps: 29,981
GST-PERF-INFO -->  timestamp: 0:44:49.368081920; bps: 241920,000; mean_bps: 200651,294; fps: 29,963; mean_fps: 29,980
GST-PERF-INFO -->  timestamp: 0:44:50.368731947; bps: 241920,000; mean_bps: 202944,000; fps: 29,981; mean_fps: 29,980
GST-PERF-INFO -->  timestamp: 0:44:51.370037391; bps: 241920,000; mean_bps: 204995,368; fps: 29,961; mean_fps: 29,979
GST-PERF-INFO -->  timestamp: 0:44:52.370821395; bps: 241920,000; mean_bps: 206841,600; fps: 29,976; mean_fps: 29,979
GST-PERF-INFO -->  timestamp: 0:44:53.371545430; bps: 241920,000; mean_bps: 208512,000; fps: 29,978; mean_fps: 29,979
GST-PERF-INFO -->  timestamp: 0:44:54.372675500; bps: 241920,000; mean_bps: 210030,545; fps: 29,966; mean_fps: 29,978
GST-PERF-INFO -->  timestamp: 0:44:55.373703465; bps: 241920,000; mean_bps: 211417,043; fps: 29,969; mean_fps: 29,978


RidgeRun Resources

Quick Start Client Engagement Process RidgeRun Blog Homepage
Technical and Sales Support RidgeRun Online Store RidgeRun Videos Contact Us

OOjs UI icon message-progressive.svg Contact Us

Visit our Main Website for the RidgeRun Products and Online Store. RidgeRun Engineering informations are available in RidgeRun Professional Services, RidgeRun Subscription Model and Client Engagement Process wiki pages. Please email to support@ridgerun.com for technical questions and contactus@ridgerun.com for other queries. Contact details for sponsoring the RidgeRun GStreamer projects are available in Sponsor Projects page. Ridgerun-logo.svg
RR Contact Us.png