IMX6 Power consumption while encoding/decoding

From RidgeRun Developer Connection
Jump to: navigation, search

Introduction

This wiki page summarizes the power consumption of the iMX6 while encoding and decoding video using the H264 hardware encoder. It is dependent on the hardware design, so you actual numbers will be different.

Multicore

In this case the encoding/decoding consumption is measured using the 4 cores of the iMX6.

  • Resolution: 720p
  • Bitrate: 1Mbps

Encoding

The encoding was performed using gstreamer on Android. The power consumption was measured using the BK Precision 1697 power supply.

  • Idle current: 0.9A
  • Idle power: 4.4W
  • Encoding current: 1.23A
  • Encoding power: 6W

Decoding

The decoding was made running this pipeline in a PC:

gst-launch-1.0 videotestsrc ! 'video/x-raw,width=1280,height=720' ! queue ! x264enc ! queue ! mpegtsmux ! queue ! udpsink port=5004 host=<IPaddress> -v

And decoding in the iMX6 with:

gst-launch-1.0 udpsrc port=5004 ! queue ! tsdemux ! queue ! 'video/x-h264' ! vpudec ! imxipuvideosink framebuffer=/dev/graphics/fb0 -v sync=false
  • Idle current: 0.9A
  • Idle power: 4.4W
  • Decoding current: 1.1A
  • Decoding power: 5.5W

Note: If a fakesink is used instead of a ipusink, the current is 1A and the power 5W.

Single Core

In this case the encoding/decoding consumption is measured using only 1 of the 4 cores of the iMX6.

In order to enable only 1 core do:

echo 0 > /sys/devices/system/cpu/cpu1/online
echo 0 > /sys/devices/system/cpu/cpu2/online
echo 0 > /sys/devices/system/cpu/cpu3/online
  • Resolution: 720p
  • Bitrate: 1Mbps

Encoding

The encoding was performed using the Gstreamer on Android. The power consumption was measured using the BK Precision 1697 power supply.

  • Idle current: 0.88A
  • Idle power: 4.3W
  • Encoding current: 1.23A
  • Encoding power: 6W

Decoding

The decoding was made running this pipeline in a PC:

gst-launch-1.0 videotestsrc ! 'video/x-raw,width=1280,height=720' ! queue ! x264enc ! queue ! mpegtsmux ! queue ! udpsink port=5004 host=<IPAddress> -v

And decoding in the iMX6 with:

gst-launch-1.0 udpsrc port=5004 ! queue ! tsdemux ! queue ! 'video/x-h264' ! vpudec ! imxipuvideosink framebuffer=/dev/graphics/fb0 -v sync=false
  • Idle current: 0.9A
  • Idle power: 4.4W
  • Decoding current: 1.1A
  • Decoding power: 5.5W

Note: If a fakesink is used instead of a ipusink, the current is 1A and the power 5W.