AM5728 Multimedia Performance Testbench

Introduction

On this page you are going to find the results of a multimedia performance test-bench for AM5728 EVM. The test-bench was executed using an SO image built by AM5728 RR-SDK, with GStreamer 1.6.1 version. This test-bench is based on GStreamer pipelines, and evaluates different video and audio tasks.


Multimedia Performance Test-bench Description

This test-bench makes a comparison between executing GStreamer pipelines that uses hardware acceleration modules available in AM5728 SoC and when those pipelines don´t use hardware acceleration.


Measurement parameters specified in the test:

  • CPU load percentage per core
  • Memory consumption
  • Memory Bandwidth
  • Frame rate
  • Encode time of a raw audio block
  • Video capture latency


Multimedia tasks evaluated in the test-bench:

  • AAC audio encode
  • H264 video encode
  • MPEG4 video encode
  • H264 video decode
  • MPEG4 video decode
  • MPEG2 video decode
  • JPEG video decode
  • Resolution scale and color-space conversion
  • Video capture


Note: Encode time of a raw audio block parameter was only measured for AAC audio encode multimedia task. Video capture latency parameter was only measured for video capture multimedia task. This was the unique parameter measured for this task.


Different tools were used to measure the parameters specified in this test-bench. GstShark was the principal tool used to measure CPU load per core, frame rate and buffer processing time. GstShark is a benchmarking and profiling tool for Gstreamer pipelines developed by RidgeRun (If you want more information of this tool, please follow this link GstShark). Top Linux command was used to measure memory consumption. Bandwidth application was used to measure memory bandwidth (If you want more information of this tool, please follow this link Bandwidth). Video capture latency was measured using a special procedure developed in RidgeRun.

Multimedia Performance Test-bench Results

In this section you will find the performance results obtained after applying the test-bench for each multimedia task.

AAC audio encode

To evaluate AAC encode using hardware acceleration and non using it, we use the FAAC GStreamer plugin. The hardware accelerated implementation of AAC audio encode with FAAC plugin use the NEON&VFPv4 ARM CORTEX A-15 extension. The software implementation only use the ARM. The test pipelines only differ in faac element, using in one case the hardware accelerated implementation, and in the other case using the non hardware accelerated implementation.

A raw audio file of 45.1 MB and 4:28 (min/s) duration was used as input in all the test pipelines of this section.

Total execution time

Test pipeline:

gst-launch-1.0 filesrc location=/am5728-gst-tests/audio-samples/audio_sample.raw ! audioparse ! faac ! fakesink -e

Obtained Results:

 
AM572x-testbench-AAC-exec-time.png


In the chart above, is clearly shown that when using hardware acceleration (NEON&VFPv4 extension), the total execution time of the AAC audio encode pipeline is significantly reduced. The average difference is 184.8 ms less in the pipeline execution time when the NEON&VFv4 extension is used.


CPU load % per core

Test pipeline:

GST_TRACER_PLUGINS="cpuusage" gst-launch-1.0 filesrc location=/am5728-gst-tests/audio-samples/audio_sample.raw num-buffers=1000 ! audioparse ! faac ! fakesink sync=true -e

Obtained Results:

 
AM572x-testbench-AAC-cpuload.png


In the chart above, it can be seen that when using hardware acceleration (NEON&VFPv4 extension), no reduction is achieved in the CPU workload.