Difference between revisions of "GStreamer Based Image Signal Processor/Performance/Color Space Conversion"

From RidgeRun Developer Connection
Jump to: navigation, search
(Pipeline)
Line 14: Line 14:
  
 
<syntaxhighlight lang=bash style="background-color: #f0fff0">
 
<syntaxhighlight lang=bash style="background-color: #f0fff0">
WIDTH=1920
+
$ WIDTH=1920
HEIGHT=1080
+
$ 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
+
$ gst-launch-1.0 videotestsrc is-live=true ! "video/x-raw,format=(string)RGBA,width=$WIDTH,height=$HEIGHT,framerate=(fraction)30/1" ! queue ! oclcsc ! fakesink -v
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 34: Line 34:
 
     <td>640x480@30fps</td>
 
     <td>640x480@30fps</td>
 
     <td>4</td>
 
     <td>4</td>
     <td>19784</td>
+
     <td>18664</td>
     <td>2.8</td>
+
     <td>2.24</td>
 
   </tr>
 
   </tr>
 
<tr>
 
<tr>
 
     <td>1280x720@30fps</td>
 
     <td>1280x720@30fps</td>
 
     <td>10</td>
 
     <td>10</td>
     <td>20076</td>
+
     <td>19484</td>
     <td>7.4</td>
+
     <td>6.19</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
     <td>1920x1080@30fps</td>
 
     <td>1920x1080@30fps</td>
 
     <td>14</td>
 
     <td>14</td>
     <td>21140</td>
+
     <td>21424</td>
     <td>16</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. Summary table regarding to the CSC performance for several standard resolutions running at 30fps</caption>
Line 67: Line 67:
 
   <tr>
 
   <tr>
 
     <td>640x480</td>
 
     <td>640x480</td>
     <td>170</td>
+
     <td>333</td>
 
   </tr>
 
   </tr>
 
<tr>
 
<tr>
 
     <td>1280x720</td>
 
     <td>1280x720</td>
     <td>63</td>
+
     <td>120</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
     <td>1920x1080</td>
 
     <td>1920x1080</td>
     <td>29</td>
+
     <td>55</td>
 
</tr>
 
</tr>
 
<caption>Table 2. Summary table for the maximum framerate using CSC algorithm for several standard resolutions</caption>
 
<caption>Table 2. Summary table for the maximum framerate using CSC algorithm for several standard resolutions</caption>

Revision as of 14:27, 5 July 2019


Previous: Performance/Debayer Index Next: Contact Us





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.

Benchmarking

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 ! oclcsc ! 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. Summary table regarding to the CSC performance for several standard resolutions running at 30fps


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


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

CPU usage

These measurements were taken with top app to monitor the behavior of the pipeline while running. Notice, however, that videotestsrc was used to generate the buffers and it consumes a lot of CPU, so it is likely the results will differ if a camera is used for capture.

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, but it is important to consider that videotestsrc was used to generate the buffers.

Error creating thumbnail: Unable to save thumbnail to destination
Memory consumption by 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.

Error creating thumbnail: Unable to save thumbnail to destination
Framerate for different resolutions on the 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.


Previous: Performance/Debayer Index Next: Contact Us