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

From RidgeRun Developer Connection
Jump to: navigation, search
(Created page with "== Benchmarking for i.MX6== === Pipeline === All the measurements below were made using the following minimal pipeline. <syntaxhighlight lang=bash style="background-color:...")
 
m
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Benchmarking for i.MX6==
+
<noinclude>
 +
{{GStreamer Based Image Signal Processor/Head|previous=Performance|next=Performance/imx8|metakeywords=CSC Benchmarking, CPU usage, Memory usage, Execution time, Maximum Framerate, Debayer Benchmarking}}
 +
</noinclude>
 +
 
 +
 
 +
 
 +
== 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 in the following sections, as well as the pipelines used to capture such results.
  
 
=== Pipeline ===
 
=== Pipeline ===
Line 9: Line 17:
 
HEIGHT=1080
 
HEIGHT=1080
  
gst-launch-1.0 videotestsrc is-live=true ! "video/x-bayer, format=(string)bggr, width=$WIDTH, height=$HEIGHT,framerate=(fraction)30/1" ! queue ! ispcldebayer ! fakesink -v
+
gst-launch-1.0 videotestsrc is-live=true ! "video/x-bayer, format=(string)bggr, width=$WIDTH, height=$HEIGHT,framerate=(fraction)30/1" ! queue ! oclcsc ! fakesink -v
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Summary ===
 
=== Summary ===
In this summary you can find measurements related with CPU usage, memory, execution time and maximum framerate supported by the debayer algorithm.  
+
In this summary, you can find measurements related to CPU usage, memory, execution time, and maximum framerate supported by the debayer algorithm.  
 
<html>
 
<html>
 
<center>
 
<center>
Line 47: Line 55:
  
  
<span style="color:red"> '''Note:''' take into consideration that these values were taken using the videotestsrc element, and may decrease with a camera source capture. </span>
+
{{Ambox
 +
|type=notice
 +
|small=left
 +
|issue='''Note:''' take into consideration that these values were taken using the videotestsrc element, and may decrease with a camera source capture.
 +
|style=width:unset;
 +
}}
  
 
<html>
 
<html>
Line 84: Line 97:
  
 
===Execution time===
 
===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.  
+
These measurements were taken by putting some '''timestamps''' before and after the processing to measure just the execution time for the debayer kernel algorithm by each frame and avoid possible false measurements from the GStreamer plugin. The image below shows the debayer execution time by each frame for each resolution.  
  
 
[[File:Execution Time (ms).png|frame|center|Execution time debayering for different resolutions at 30fps.]]
 
[[File:Execution Time (ms).png|frame|center|Execution time debayering for different resolutions at 30fps.]]
 +
 +
===Maximum Framerate===
 +
These measurements were taken with the '''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.
 +
 +
[[File:Maximum Framerate (fps).png|frame|center|Maximum framerate debayering for different resolutions.]]
 +
 +
 +
== Debayer 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 in 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.
 +
 +
<syntaxhighlight lang=bash style="background-color: #f0fff0">
 +
WIDTH=1920
 +
HEIGHT=1080
 +
 +
gst-launch-1.0 videotestsrc is-live=true ! "video/x-bayer, format=(string)bggr, width=$WIDTH, height=$HEIGHT,framerate=(fraction)30/1" ! queue ! ispcldebayer ! fakesink -v
 +
</syntaxhighlight>
 +
 +
=== Summary ===
 +
In this summary you can find measurements related with CPU usage, memory, execution time and maximum framerate supported by the debayer algorithm.
 +
<html>
 +
<center>
 +
<table class="wikitable" style="color:black;">
 +
  <tr>
 +
    <th>Resolution</th>
 +
    <th>CPU usage (%) *</th>
 +
    <th>Memory (kB) *</th>
 +
    <th>Execution Time (ms)</th>
 +
  </tr>
 +
  <tr>
 +
    <td>640x480@30fps</td>
 +
    <td>9</td>
 +
    <td>12990</td>
 +
    <td>10.49</td>
 +
  </tr>
 +
<tr>
 +
    <td>1280x720@30fps</td>
 +
    <td>10</td>
 +
    <td>14654</td>
 +
    <td>48.25</td>
 +
</tr>
 +
<tr>
 +
    <td>1920x1080@30fps</td>
 +
    <td>15</td>
 +
    <td>15890</td>
 +
    <td>69.14</td>
 +
</tr>
 +
<caption>Table 1. Summary table regarding the debayer performance for several standard resolutions running at 30fps</caption>
 +
</table>
 +
</center>
 +
</html>
 +
 +
 +
{{Ambox
 +
|type=notice
 +
|small=left
 +
|issue='''Note:''' take into consideration that these values were taken using the videotestsrc element, and may decrease with a camera source capture.
 +
|style=width:unset;
 +
}}
 +
 +
<html>
 +
<center>
 +
<table class="wikitable" style="color:black;">
 +
  <tr>
 +
    <th>Resolution</th>
 +
    <th>Maximum framerate (fps)</th>
 +
  </tr>
 +
  <tr>
 +
    <td>640x480</td>
 +
    <td>100</td>
 +
  </tr>
 +
<tr>
 +
    <td>1280x720</td>
 +
    <td>40</td>
 +
</tr>
 +
<tr>
 +
    <td>1920x1080</td>
 +
    <td>15</td>
 +
</tr>
 +
<caption>Table 2. Summary table for the maximum framerate using debayer algorithm for several standard resolutions</caption>
 +
</table>
 +
</center>
 +
</html>
 +
 +
===CPU usage===
 +
These measurements were taken with the '''top''' app to see the behavior of the pipeline while running at 30fps, but we have to have in account that videotestsrc is used to generate the buffers and it consumes a lot of CPU.
 +
 +
[[File:Cpu imx6 debayer.png|frame|center|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, but we have to have in account that videotestsrc is used to generate the buffers and it depends on the framerate due to the number of buffers generated by videotestsrc.
 +
 +
[[File:Imx6 memory debayer.png|frame|center|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 avoid possible false measurements from the GStreamer plugin. The image below shows the debayer execution time by each frame for each resolution.
 +
 +
[[File:Exec time imx6 debayer.png|frame|center|Execution time debayering for different resolutions at 30fps.]]
  
 
===Maximum Framerate===
 
===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.
 
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.
  
[[File:Maximum Framerate (fps).png|frame|center|Maximum framerate debayering for different resolutions.]]
+
[[File:Max framerate imx6 debayer.png|frame|center|Maximum framerate debayering for different resolutions.]]
 +
 
 +
 
 +
<noinclude>
 +
{{GStreamer Based Image Signal Processor/Foot|Performance|Performance/imx8}}
 +
</noinclude>

Latest revision as of 10:10, 17 March 2023


Previous: Performance Index Next: Performance/imx8






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 in 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-bayer, format=(string)bggr, width=$WIDTH, height=$HEIGHT,framerate=(fraction)30/1" ! queue ! oclcsc ! fakesink -v

Summary

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

Resolution CPU usage (%) * Memory (kB) * Execution Time (ms)
640x480@30fps 34 6444 10.5555
1280x720@30fps 40 6612 34.0309
1920x1080@30fps 48 6900 66.8196
Table 1. Summary table regarding to the debayer performance for several standard resolutions running at 30fps


Resolution Maximum framerate (fps)
640x480 90
1280x720 28
1920x1080 14
Table 2. Summary table for the maximum framerate using debayer algorithm for several standard resolutions

CPU usage

These measurements were taken with top app to see the behavior of the pipeline while running at 30fps, but we have to have in account that videotestsrc is used to generate the buffers and it consumes a lot of CPU.

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, but we have to have in account that videotestsrc is used to generate the buffers and it depends on the framerate due to the number of buffers generated by videotestsrc.

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

Execution time

These measurements were taken by putting some timestamps before and after the processing to measure just the execution time for the debayer kernel algorithm by each frame and avoid 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 the 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.

Error creating thumbnail: Unable to save thumbnail to destination
Maximum framerate debayering for different resolutions.


Debayer 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 in 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-bayer, format=(string)bggr, width=$WIDTH, height=$HEIGHT,framerate=(fraction)30/1" ! 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 9 12990 10.49
1280x720@30fps 10 14654 48.25
1920x1080@30fps 15 15890 69.14
Table 1. Summary table regarding the debayer performance for several standard resolutions running at 30fps


Resolution Maximum framerate (fps)
640x480 100
1280x720 40
1920x1080 15
Table 2. Summary table for the maximum framerate using debayer algorithm for several standard resolutions

CPU usage

These measurements were taken with the top app to see the behavior of the pipeline while running at 30fps, but we have to have in account that videotestsrc is used to generate the buffers and it consumes a lot of CPU.

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, but we have to have in account that videotestsrc is used to generate the buffers and it depends on the framerate due to the number of buffers generated by videotestsrc.

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 avoid 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.

Error creating thumbnail: Unable to save thumbnail to destination
Maximum framerate debayering for different resolutions.


Previous: Performance Index Next: Performance/imx8