NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

Performance Measurement on Video Encode/Decode Demo

From Texas Instruments Wiki
Jump to: navigation, search

Performance Measurement [edit]

This page shows the Processor Load Performance Measurement procedure on DM816x 1080p60 Encode + Decode Demo which is part of EZSDK demos.
Notes This page provides the Processor Load Performance Measurement details for one of the demos available in the EZSDK package. The performance data does not truly reflect the actual capability and performance of the underlying device.

Usecase[edit]

The 1080p60 Encode+Decode demo consists of a single channel 1080p60 Encode and Decode with Dual Display output. Sample H.264 1080p stream stored in a SD Card is decoded by the VDEC OMX Decoder component. The decoded frame is passed to OMX scalar component , which does Scaling and Chroma conversion from YUV 420 to 422. The Scaled output is fed to OMX VFDC display component and the output is looped back to HD-DAC Component capture. OMX VFCC Component captures the 1080p60 date in YUV 420 format and and passed to DEI component. The DEI Component creates two outputs with 420 and 422 formats. The 420 output is fed to VENC encoder, for 1080p60 encoding. The other 422 output is passed to VFDC and displayed out via on-chip HDMI interface. Capture, Display and Frame Processing components run on VPSS Media controller, while Encode and Decode runs on Video Media Controller.

Figure 1: Video Encode/Decode Demo

Setup Details[edit]

DM816x Base EVM Rev-C with DDR3 attached with an Expansion IO (EIO) Card interface. The HD-DAC output of DM816x Base EVM is connected to the HD-DAC Component Capture of Expansion interface. The on-chip HDMI out from the DM816x Base EVM is connected to a TV.

OMX Components Details[edit]

Following are the components involved in the usecase:

  • VFCC (Video Frame Capture Component)
  • VFPC-DEI (Video Frame Processing Component - Deinterlacer)
  • VENC (Video Encode Component)
  • VDEC (Video Decode Component)
  • VFPC-Sc (Video Frame Processing Component - Scalar)
  • VFDC (Video Frame Display Component)

Load Profiler[edit]

ARM based load profiler application calculates the processor load data. The load profiler provides the following load details

  • ARM Load
  • Video Media Controller Load
  • VPSS Media Controller Load

How to Build the Load Profiler[edit]

1. The EZSDK has to be installed on a linux host machine as a pre-requisite.

2. Click the link Media:profile.tar.gz and copy the profiler source code to the components-sources folder (${EZSDK}/component-sources).

3. Untar the profile.tar.gz and copy the contents in the pre-installed EZSDK under ${EZSDK}/component-sources directory.

 host $ cp profile.tar.gz ${EZSDK}/component-sources
 host $ tar -xvzf profile.tar.gz 

4. Search for the variable CC in Makefile , update the CC variable to ARM Tool chain path, For eg

CC = /home/dvsdkval/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc 

5. Type the following command to build the profiler

   host $ cd ${EZSDK}/component-sources/profile
   host $ make  

6. The ARM binary profile.xv5T is created under ${EZSDK}component-sources/profile/bin directory

How to Run the Load Profiler[edit]

This example provides display on HDMI port by default. Plug in a display device (TV) into base board HDMI port. Also display device should support 1080p60 display. The video should be displayed on the connected display device while running the application. For running the application following steps are required.

1. Switch on the Netra EVM and wait for the board to boot.

2. The Matrix GUI will be displayed on the screen, click 1080p60 Encode+Decode icon on the Matrix GUI under Multimedia demos.

3. The video output will be displayed on the screen.

4. Open a telnet session to the EVM and login as root, For eg if the EVM's IP address is telnet 172.24.190.188

   host # telnet 172.24.190.188

5. Wait for the video display output. Now Run the Load profiler. (Assuming the profiler.xv5T is copied in /opt directory on the target file system)

   target # cd /opt
   target # ./profile.xv5T -w 60 -l 2

6. The load profiler usage is

./profile.xv5T -w <duration in seconds> -l <load details level> -u <load units>

-w | --duration        window duration in seconds
-l | --load details     default is 2
-u | --units           0 - % (Load percentage) , 1 - MHz
 

7. Video and VPSS media controller loads are obtained using BIOS load API Load_calculateLoad(). This API provides the load details for all tasks running on the media controllers including Idle task, ISR, SWI etc. These load values are dumped into external memory by a profiler Task running on Video and VPSS Media Controllers

8. The load profiler reads the Video and VPSS load details from the external memory. ARM load values are obtained from /proc/stat module from the target.

Figure 2: Load Profiler Block

9. The load profiler dumps the load details for ARM, Video and VPSS Media controllers for every second.

10. The profile also calculates the Running average load (window length is 8 sec) for all cores.(Running average* : Series of averages is calculated for a fixed window period of different subsets of the full data set and final average is calculate from the average series)

11. The load profiler generates perf.xls which contains the processor load details and summary.

12. Copy the load values from the generated perf.xls file into the processor load performance template. A sample performance template is available at Media:DM816x_Video_encode_decode_demo_processor_load_performance.zip


Performance Results[edit]

Download the Latest EZSDK[edit]

The latest EZSDK is available for download from http://software-dl.ti.com/dsps/dsps_public_sw/ezsdk/latest/index_FDS.html.

The current version is 5.05.02.00. The supported platforms are DM816x and DM814x.

EZSDK Support
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Performance Measurement on Video Encode/Decode Demo here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Performance Measurement on Video Encode/Decode Demo here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article Performance Measurement on Video Encode/Decode Demo here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article Performance Measurement on Video Encode/Decode Demo here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article Performance Measurement on Video Encode/Decode Demo here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Performance Measurement on Video Encode/Decode Demo here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Performance Measurement on Video Encode/Decode Demo here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article Performance Measurement on Video Encode/Decode Demo here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Performance Measurement on Video Encode/Decode Demo here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity