GStreamer Based Image Signal Processor/Performance/imx8: Difference between revisions

no edit summary
No edit summary
Line 80: Line 80:


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


[[File:Cpu.png|frame|center|CPU usage for CSC kernel.]]
[[File:Cpu.png|frame|center|CPU usage for '''CSC''' element]]


==Memory usage==
==Memory usage==
These measurements were taken with '''perf stat''' linux tool to measure the bandwidth needed by the pipeline.
These measurements were taken with '''perf stat''' linux tool to measure the bandwidth needed by the pipeline.


[[File:Memo.png|frame|center|Memory consumption by CSC kernel.]]
[[File:Memo.png|frame|center|Memory bandwidth consumption by '''CSC''' element]]


==Execution time==
==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.
These measurements were taken using some '''timestamps''' before and after the processing to measure just the execution time for the kernel algorithm on each frame and hence avoiding possible false measurements from the GStreamer plugin.  
[[File:Extime.png|frame|center|Execution time for different resolutions on the CSC kernel.]]
 
[[File:Extime.png|frame|center|Execution time for different resolutions with the '''CSC''' element]]


==Maximum Framerate==
==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.
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 following pipeline was used to test the maximum framerate, please note the use of videotestsrc.
The following pipeline was used to test the maximum framerate, please note the use of videotestsrc.
Line 104: Line 105:
</syntaxhighlight>
</syntaxhighlight>


[[File:Framerate.png|frame|center|Framerate for different resolutions on the CSC kernel.]]
[[File:Framerate.png|frame|center|Framerate for different resolutions with the '''CSC''' element]]


=Debayer Benckmarking=
=Debayer Benckmarking=
Line 183: Line 184:


==CPU usage==
==CPU usage==
These measurements were taken with '''top''' app to see the behavior of the pipeline while running at 30fps.
These measurements were taken with the '''top''' app to monitor the behavior of the pipeline while running.


[[File:cpu-usage-debayer.png|frame|center|Cpu usage debayering for different resolutions at 30fps.]]
[[File:cpu-usage-debayer.png|frame|center|CPU usage for '''debayer''' element]]




Line 191: Line 192:
These measurements were taken with '''perf stat''' linux tool to measure the bandwidth needed by the pipeline.
These measurements were taken with '''perf stat''' linux tool to measure the bandwidth needed by the pipeline.


[[File:memory-debayer.png|frame|center|Memory usage debayering for different resolutions at 30fps.]]
[[File:memory-debayer.png|frame|center|Memory bandwidth consumption by '''debayer''' element]]


==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 using some '''timestamps''' before and after the processing to measure just the execution time for the kernel algorithm on each frame and hence avoiding possible false measurements from the GStreamer plugin.


[[File:exec-time-debayer.png|frame|center|Execution time debayering for different resolutions at 30fps.]]
[[File:exec-time-debayer.png|frame|center|Execution time for different resolutions with the '''debayer''' element]]




==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 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 following pipeline was used to test the maximum framerate, please note the use of videotestsrc.
The following pipeline was used to test the maximum framerate, please note the use of videotestsrc.
Line 211: Line 212:
</syntaxhighlight>
</syntaxhighlight>


[[File:max-framerate-debayer.png|frame|center|Maximum framerate debayering for different resolutions.]]
[[File:max-framerate-debayer.png|frame|center|Framerate for different resolutions with the '''debayer''' element]]


= AWB Benchmarking =
= AWB Benchmarking =
Line 290: Line 291:


==CPU usage==
==CPU usage==
These measurements were taken with '''top''' app to see the behavior of the pipeline while running at 30fps.
These measurements were taken with the '''top''' app to monitor the behavior of the pipeline while running.


[[File:CPU usage for AWB.png|frame|center|CPU]]
[[File:CPU usage for AWB.png|frame|center|CPU usage for '''AWB''' element]]


==Memory usage==
==Memory usage==
These measurements were taken with '''meminfo''' file to see the behavior of the pipeline while running at 30fps.
These measurements were taken with '''perf stat''' linux tool to measure the bandwidth needed by the pipeline.


[[File:Memory Bandwidth for AWB.png|frame|center|Memory]]
[[File:Memory Bandwidth for AWB.png|frame|center|Memory bandwidth consumption by '''AWB''' element]]


==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 autowhite balance execution time by each frame for each resolution.  
These measurements were taken using some '''timestamps''' before and after the processing to measure just the execution time for the kernel algorithm on each frame and hence avoiding possible false measurements from the GStreamer plugin.  


[[File:Execution Time AWB.png|frame|center|Execution time for Autowhite balance for different resolutions.]]
[[File:Execution Time AWB.png|frame|center|Execution time for different resolutions with the '''AWB''' element]]




==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 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 following pipeline was used to test the maximum framerate, please note the use of videotestsrc.
The following pipeline was used to test the maximum framerate, please note the use of videotestsrc.
Line 316: Line 317:
</syntaxhighlight>
</syntaxhighlight>


[[File:Maximum Framerate AWB.png|frame|center|Maximum framerate for Autowhite balance for different resolutions.]]
[[File:Maximum Framerate AWB.png|frame|center|Framerate for different resolutions with the '''AWB''' element]]


= Histogram Equalization Benchmarking =
= Histogram Equalization Benchmarking =
Line 395: Line 396:


==CPU usage==
==CPU usage==
These measurements were taken with '''top''' app to see the behavior of the pipeline while running at 30fps.
These measurements were taken with the '''top''' app to monitor the behavior of the pipeline while running.


[[File:CPU usage Eq.png|frame|center|Execution time of Histogram Equalization for different resolutions.]]
[[File:CPU usage Eq.png|frame|center|CPU usage for '''Histogram Equalization''' element]]


==Memory usage==
==Memory usage==
These measurements were taken with '''meminfo''' file to see the behavior of the pipeline while running at 30fps.
These measurements were taken with '''perf stat''' linux tool to measure the bandwidth needed by the pipeline.


[[File:Memory Bandwidth Eq.png|frame|center|Execution time of Histogram Equalization for different resolutions.]]
[[File:Memory Bandwidth Eq.png|frame|center|Memory bandwidth consumption by '''Histogram Equalization''' element]]


==Execution time==
==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.  
These measurements were taken using some '''timestamps''' before and after the processing to measure just the execution time for the kernel algorithm on each frame and hence avoiding possible false measurements from the GStreamer plugin.  


[[File:Execution Time Equalizer.png|frame|center|Execution time of Histogram Equalization for different resolutions.]]
[[File:Execution Time Equalizer.png|frame|center|Execution time for different resolutions with the '''Histogram Equalization''' element]]


==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 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 following pipeline was used to test the maximum framerate, please note the use of videotestsrc.
The following pipeline was used to test the maximum framerate, please note the use of videotestsrc.
Line 421: Line 422:
</syntaxhighlight>
</syntaxhighlight>


[[File:Maximum Framerate Eq.png|frame|center|Maximum framerate of Histogram Equalization for different resolutions.]]
[[File:Maximum Framerate Eq.png|frame|center|Framerate for different resolutions with the '''Histogram Equalization''' element]]


<noinclude>
<noinclude>
{{GStreamer Based Image Signal Processor/Foot|Performance/imx6|Performance/Color Space Conversion}}
{{GStreamer Based Image Signal Processor/Foot|Performance/imx6|Performance/Color Space Conversion}}
</noinclude>
</noinclude>
583

edits