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
Contents
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.
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.
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]
- EZSDK 5.04.00.09 Video encode/decode Demo Performance Results ( Latest Release)
- EZSDK 5.03.00.09 Video encode/decode Demo Performance Results
- EZSDK 5.02.01.59 Video encode/decode Demo Performance Results
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 | ||||||||
|