Difference between revisions of "GStreamer Based Image Signal Processor/Performance/imx8"

From RidgeRun Developer Connection
Jump to: navigation, search
Line 48: Line 48:
 
     <td>13.17</td>
 
     <td>13.17</td>
 
</tr>
 
</tr>
<caption>Table 1. Summary table regarding to the CSC performance for several standard resolutions running at 30fps</caption>
+
<caption>Table 1. Performance for several standard resolutions at 30fps</caption>
 
</table>
 
</table>
 
</center>
 
</center>
Line 150: Line 150:
 
     <td>21.46</td>
 
     <td>21.46</td>
 
</tr>
 
</tr>
<caption>Table 1. Summary table regarding to the debayer performance for several standard resolutions running at 30fps</caption>
+
<caption>Table 1. Performance for several standard resolutions at 30fps</caption>
 
</table>
 
</table>
 
</center>
 
</center>
Line 258: Line 258:
 
     <td>8.52</td>
 
     <td>8.52</td>
 
</tr>
 
</tr>
<caption>Table 1. Summary table regarding to the AWB performance for several standard resolutions running at 30fps</caption>
+
<caption>Table 1. Performance for several standard resolutions at 30fps</caption>
 
</table>
 
</table>
 
</center>
 
</center>
Line 363: Line 363:
 
     <td>10.95</td>
 
     <td>10.95</td>
 
</tr>
 
</tr>
<caption>Table 1. Summary table regarding to the Histogram Equalization performance for several standard resolutions running at 30fps</caption>
+
<caption>Table 1. Performance for several standard resolutions at 30fps</caption>
 
</table>
 
</table>
 
</center>
 
</center>

Revision as of 17:04, 3 October 2019


Previous: Performance/imx6 Index Next: Performance/Color Space Conversion





CSC Benchmarking

The following section describes some relevant performance measurements for the RGBA to NV12 color space conversion for a few standard resolutions. It begins with a summary of the results detailed on the following sections, as well as the pipelines used to capture such results.

Pipeline

All the measurements below were made using the following minimal pipeline.

$ WIDTH=1920
$ HEIGHT=1080

$ gst-launch-1.0 videotestsrc is-live=true ! "video/x-raw,format=(string)RGBA,width=$WIDTH,height=$HEIGHT,framerate=(fraction)30/1" ! queue ! ispclcsc ! fakesink -v

Summary

In this summary you can find measurements related with CPU usage, memory, execution time and maximum framerate supported by the CSC algorithm.

Resolution CPU usage (%) Memory (kB) Execution Time (ms)
640x480@30fps 4 18664 2.24
1280x720@30fps 10 19484 6.19
1920x1080@30fps 14 21424 13.17
Table 1. Performance for several standard resolutions at 30fps

Resolution Maximum framerate (fps) *
640x480 333
1280x720 120
1920x1080 55
Table 2. Summary table for the maximum framerate using CSC algorithm for several standard resolutions

*Note: take into consideration that these values were taken using the videotestsrc element, and may decrease with a camera source capture.

CPU usage

These measurements were taken with top app to monitor the behavior of the pipeline while running.

Error creating thumbnail: Unable to save thumbnail to destination
CPU usage for CSC kernel.

Memory usage

These measurements were taken with meminfo file to see the behavior of the pipeline while running.

Error creating thumbnail: Unable to save thumbnail to destination
Memory consumption by CSC kernel.

Execution time

These measurements were taken using some timestamps before and after the processing to measure just the execution time for the CSC kernel algorithm on each frame and hence avoiding possible false measurements from the GStreamer plugin. The image below shows the CSC execution time by each frame for each resolution.

Error creating thumbnail: Unable to save thumbnail to destination
Execution time for different resolutions on the CSC kernel.

Maximum Framerate

These measurements were taken with the gst-perf tool to monitor the behavior of the pipeline while running. When using videotestsrc we are able to process as many buffers as the element can handle, hence the maximum value reported. The image below shows the maximum framerate that the CSC element supports, which depends on the execution time of the CSC kernel algorithm.

The following pipeline was used to test the maximum framerate, please note the use of videotestsrc.

$ WIDTH=1920
$ HEIGHT=1080

$ gst-launch-1.0 videotestsrc ! "video/x-raw,format=(string)RGBA,width=$WIDTH,height=$HEIGHT,framerate=(fraction)30/1" ! queue ! ispclcsc ! fakesink -v
Error creating thumbnail: Unable to save thumbnail to destination
Framerate for different resolutions on the CSC kernel.

Debayer Benckmarking

The following section describes some relevant performance measurements during debayering for a few standard resolutions. It begins with a summary of the results detailed on the following sections, as well as the pipelines used to capture such results.

Pipeline

All the measurements below were made using the following minimal pipeline.

WIDTH=1920
HEIGHT=1080

$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-bayer,format=bggr10,width=$WIDTH,height=$HEIGHT,framerate=30/1 ! ispclbayer10to8 ! queue ! ispcldebayer ! fakesink -v

Summary

In this summary you can find measurements related with CPU usage, memory, execution time and maximum framerate supported by the debayer algorithm.

Resolution CPU usage (%) Memory (kB) Execution Time (ms)
640x480@30fps 2 20084 3.54
1280x720@30fps 2 22564 9.89
1920x1080@30fps 3 23212 21.46
Table 1. Performance for several standard resolutions at 30fps


Resolution Maximum framerate (fps)*
640x480 266
1280x720 101
1920x1080 46
Table 2. Summary table for the maximum framerate using debayer algorithm for several standard resolutions

*Note: take into consideration that these values were taken using the videotestsrc element, and may decrease with a camera source capture.

CPU usage

These measurements were taken with top app to see the behavior of the pipeline while running at 30fps.

Error creating thumbnail: Unable to save thumbnail to destination
Cpu usage debayering for different resolutions at 30fps.


Memory usage

These measurements were taken with meminfo file to see the behavior of the pipeline while running at 30fps.

Error creating thumbnail: Unable to save thumbnail to destination
Memory usage debayering for different resolutions at 30fps.


Execution time

These measurements were taken putting some timestamps before and after the processing to measure just the execution time for the debayer kernel algorithm by each frame and avoiding possible false measurements from the GStreamer plugin. The image below shows the debayer execution time by each frame for each resolution.

Error creating thumbnail: Unable to save thumbnail to destination
Execution time debayering for different resolutions at 30fps.


Maximum Framerate

These measurements were taken with gstperf tool to see the behavior of the pipeline while running, with videotestsrc we are able to push buffers as much as possible to the element. The image below shows the maximum framerate that the debayer element supports. It depends on the execution time of the debayer kernel algorithm.

The following pipeline was used to test the maximum framerate, please note the use of videotestsrc.

$ WIDTH=1920
$ HEIGHT=1080

$ gst-launch-1.0 videotestsrc ! "video/x-bayer,format=bggr,width=$WIDTH,height=$HEIGHT,framerate=30/1" ! queue ! ispcldebayer ! perf ! fakesink -v
Error creating thumbnail: Unable to save thumbnail to destination
Maximum framerate debayering for different resolutions.

AWB Benchmarking

The following section describes some relevant performance measurements for the auto-white balance for a few standard resolutions. It begins with a summary of the results detailed on the following sections, as well as the pipelines used to capture such results.

Pipeline

All the measurements below were made using the following minimal pipeline.

$ WIDTH=1920
$ HEIGHT=1080

$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-bayer,format=bggr10,width=$WIDTH,height=$HEIGHT,framerate=30/1 ! ispclbayer10to8 ! queue ! ispclawb ! fakesink -v

Summary

In this summary you can find measurements related with CPU usage, memory, execution time and maximum framerate supported by the auto-white balance algorithm.

Resolution CPU usage (%) Memory (kB) Execution Time (ms)
640x480@30fps 3.11
1280x720@30fps 4.54
1920x1080@30fps 8.52
Table 1. Performance for several standard resolutions at 30fps


Resolution Maximum framerate (fps) *
640x480 230
1280x720 96
1920x1080 44
Table 2. Summary table for the maximum framerate using AWB algorithm for several standard resolutions

*Note: take into consideration that these values were taken using the videotestsrc element, and may decrease with a camera source capture.

CPU usage

These measurements were taken with top app to see the behavior of the pipeline while running at 30fps.


Memory usage

These measurements were taken with meminfo file to see the behavior of the pipeline while running at 30fps.


Execution time

These measurements were taken putting some timestamps before and after the processing to measure just the execution time for the debayer kernel algorithm by each frame and avoiding possible false measurements from the GStreamer plugin. The image below shows the autowhite balance execution time by each frame for each resolution.

Error creating thumbnail: Unable to save thumbnail to destination
Execution time for Autowhite balance for different resolutions.


Maximum Framerate

These measurements were taken with gstperf tool to see the behavior of the pipeline while running, with videotestsrc we are able to push buffers as much as possible to the element. The image below shows the maximum framerate that the debayer element supports. It depends on the execution time of the debayer kernel algorithm.

The following pipeline was used to test the maximum framerate, please note the use of videotestsrc.

$ WIDTH=1920
$ HEIGHT=1080

$ gst-launch-1.0 videotestsrc ! "video/x-bayer,format=bggr,width=$WIDTH,height=$HEIGHT,framerate=30/1" ! queue ! ispclawb ! perf ! fakesink -v
Error creating thumbnail: Unable to save thumbnail to destination
Maximum framerate for Autowhite balance for different resolutions.

Histogram Equalization Benchmarking

The following section describes some relevant performance measurements for the Histogram Equalization for a few standard resolutions. It begins with a summary of the results detailed on the following sections, as well as the pipelines used to capture such results.

Pipeline

All the measurements below were made using the following minimal pipeline.

$ WIDTH=1920
$ HEIGHT=1080

$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-bayer,format=bggr10,width=$WIDTH,height=$HEIGHT,framerate=30/1 ! ispclbayer10to8 ! queue ! ispcleq ! fakesink -v

Summary

In this summary you can find measurements related with CPU usage, memory, execution time and maximum framerate supported by the Histogram Equalization algorithm.

Resolution CPU usage (%) Memory (kB) Execution Time (ms)
640x480@30fps 4.28
1280x720@30fps 6.07
1920x1080@30fps 10.95
Table 1. Performance for several standard resolutions at 30fps


Resolution Maximum framerate (fps)*
640x480 196
1280x720 95
1920x1080 43
Table 2. Summary table for the maximum framerate using Histogram Equalization algorithm for several standard resolutions

*Note: take into consideration that these values were taken using the videotestsrc element, and may decrease with a camera source capture.

CPU usage

These measurements were taken with top app to see the behavior of the pipeline while running at 30fps.


Memory usage

These measurements were taken with meminfo file to see the behavior of the pipeline while running at 30fps.


Execution time

These measurements were taken putting some timestamps before and after the processing to measure just the execution time for the histogram equalization kernel algorithm by each frame and avoiding possible false measurements from the GStreamer plugin. The image below shows the histogram equalization execution time by each frame for each resolution.

Error creating thumbnail: Unable to save thumbnail to destination
Execution time of Histogram Equalization for different resolutions.

Maximum Framerate

These measurements were taken with gstperf tool to see the behavior of the pipeline while running, with videotestsrc we are able to push buffers as much as possible to the element. The image below shows the maximum framerate that the debayer element supports. It depends on the execution time of the debayer kernel algorithm.

The following pipeline was used to test the maximum framerate, please note the use of videotestsrc.

$ WIDTH=1920
$ HEIGHT=1080

$ gst-launch-1.0 videotestsrc ! "video/x-bayer,format=bggr,width=$WIDTH,height=$HEIGHT,framerate=30/1" ! queue ! ispcleq ! perf ! fakesink -v
Error creating thumbnail: Unable to save thumbnail to destination
Maximum framerate of Histogram Equalization for different resolutions.


Previous: Performance/imx6 Index Next: Performance/Color Space Conversion