Compdigitec Labs

« | Home | »

Android codec benchmarks

By admin | February 1, 2012

VLC for Android pre-alpha benchmarks (Feb 1, 2012) for various audio codecs.

Skip to

Specs
Motorola XT300 - Android 2.1, 500 Mhz, 256 MB, rooted with busybox, Qualcomm MSM7225 (ARM1136EJ-S core, ARMv6TEJ architecture, no NEON extensions)

/proc/cpuinfo output

Processor       : ARMv6-compatible processor rev 2 (v6l)
BogoMIPS        : 525.92
Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 6TEJ
CPU variant     : 0x1
CPU part        : 0xb36
CPU revision    : 2

Hardware	: QCT MSM7x25 SURF
Revision	: 0000
Serial		: 0000000000000000

Method

adb shell "/system/xbin/busybox ps aux | grep vlc"
adb shell "/system/xbin/busybox top -b | grep <pid of VLC as above>"

Ogg files

Comparing three popular codecs for decoding OGG vorbis files, libavcodec from libav, vorbis and tremor.

Results

  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
avcodec:
 5266   956 10072    S     163m 88.4   0 25.0 org.videolan.vlc.android
vorbis:
 5331   956 10072    R     166m 89.8   0 41.0 org.videolan.vlc.android
tremor:
 5174   956 10072    S     156m 84.5   0 32.4 org.videolan.vlc.android

So, it seems avcodec is the clear winner, followed by tremor and lagging in last place libvorbis.

AC3 files

Test sample
First 30 seconds of http://people.videolan.org/~jb/ac3_the_other_side_44khz.wav

Results - Inconclusive?

liba52
Mean: 31.51667%
Median: 27.15%
libavcodec
Mean: 28.86667%
Median: 29.25%

CPU usage comaprison liba52 vs avcodec

ac3 with liba52

-A dummy --codec=a52tofloat32
D/vlc     ( 6768): using decoder module "a52"
Over 30 seconds
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 6768   956 10072    R     160m 86.7   0 52.6 org.videolan.vlc.android
 6768   956 10072    S     159m 86.1   0 30.5 org.videolan.vlc.android
 6768   956 10072    R     156m 84.5   0 25.6 org.videolan.vlc.android
 6768   956 10072    S     156m 84.5   0 27.4 org.videolan.vlc.android
 6768   956 10072    S     156m 84.5   0 26.9 org.videolan.vlc.android
 6768   956 10072    S     156m 84.5   0 26.1 org.videolan.vlc.android

Mean: 31.51667
Median: 27.15
Mode: N/A

ac3 with libavcodec

-A dummy --codec=avcodec
D/vlc     ( 6829): using decoder module "avcodec"
Over 30 seconds
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 6829   956 10072    S     158m 85.5   0 32.3 org.videolan.vlc.android
 6829   956 10072    R     155m 83.8   0 30.0 org.videolan.vlc.android
 6829   956 10072    S     155m 83.8   0 26.3 org.videolan.vlc.android
 6829   956 10072    S     155m 83.8   0 30.0 org.videolan.vlc.android
 6829   956 10072    S     155m 83.8   0 28.5 org.videolan.vlc.android
 6829   956 10072    S     155m 83.8   0 26.1 org.videolan.vlc.android
Mean: 28.86667
Median: 29.25
Mode: 30.0

DTS files

Test sample
First 35 seconds of http://people.videolan.org/~jb/dts_the_other_side_44khz.wav

Results - Also inconclusive?

libdca
Mean: 19.66%
Median: 18.85%
Mode: 22.60%, 16.80%
libavcodec
Mean: 19.13%
Median: 18.25%
Mode: 19.3%, 20.3%, 17.6%

DTS files CPU usage comparison: avcodec vs libdca

dts with libdca

-A dummy --codec dts
Mean: 19.66
Median: 18.85
Mode: 22.60,16.80
Pass 1:
D/vlc     ( 2461): using decoder module "dts"
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 2461   951 10072    S     159m 86.3   0 21.7 org.videolan.vlc.android
 2461   951 10072    S     159m 86.3   0 22.6 org.videolan.vlc.android
 2461   951 10072    R     159m 86.3   0 21.3 org.videolan.vlc.android
 2461   951 10072    S     159m 86.3   0 24.4 org.videolan.vlc.android
 2461   951 10072    S     159m 86.3   0 20.4 org.videolan.vlc.android
 2461   951 10072    S     159m 86.3   0 25.6 org.videolan.vlc.android
Pass 2:
D/vlc     ( 2510): using decoder module "dts"
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 2510   951 10072    S     158m 85.6   0 18.0 org.videolan.vlc.android
 2510   951 10072    S     158m 85.6   0 22.6 org.videolan.vlc.android
 2510   951 10072    S     158m 85.5   0 16.5 org.videolan.vlc.android
 2510   951 10072    S     158m 85.5   0 16.8 org.videolan.vlc.android
 2510   951 10072    S     158m 85.6   0 16.8 org.videolan.vlc.android
 2510   951 10072    S     158m 85.6   0 18.7 org.videolan.vlc.android
Pass 3:
D/vlc     ( 2536): using decoder module "dts"
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 2536   951 10072    S     159m 86.3   0 19.0 org.videolan.vlc.android
 2536   951 10072    S     159m 86.3   0 21.5 org.videolan.vlc.android
 2536   951 10072    S     159m 86.3   0 16.0 org.videolan.vlc.android
 2536   951 10072    R     159m 86.3   0 16.2 org.videolan.vlc.android
 2536   951 10072    S     159m 86.3   0 17.3 org.videolan.vlc.android
 2536   951 10072    S     159m 86.3   0 18.6 org.videolan.vlc.android

dts with libavcodec

-A dummy --codec avcodec
Mean: 19.13
Median: 18.25
Mode: 19.3, 20.3, 17.6
Pass 1:
D/vlc     ( 2583): using decoder module "avcodec"
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 2583   951 10072    S     162m 87.5   0 34.6 org.videolan.vlc.android
 2583   951 10072    S     157m 85.4   0 20.0 org.videolan.vlc.android
 2583   951 10072    S     158m 85.4   0 14.6 org.videolan.vlc.android
 2583   951 10072    R     158m 85.4   0 15.8 org.videolan.vlc.android
 2583   951 10072    S     158m 85.4   0 19.3 org.videolan.vlc.android
 2583   951 10072    S     157m 85.4   0 20.3 org.videolan.vlc.android
Pass 2:
D/vlc     ( 2607): using decoder module "avcodec"
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 2607   951 10072    S     159m 86.4   0 25.5 org.videolan.vlc.android
 2607   951 10072    S     156m 84.8   0 16.6 org.videolan.vlc.android
 2607   951 10072    S     156m 84.8   0 12.8 org.videolan.vlc.android
 2607   951 10072    S     156m 84.8   0 14.2 org.videolan.vlc.android
 2607   951 10072    S     156m 84.8   0 16.9 org.videolan.vlc.android
 2607   951 10072    R     157m 84.8   0 13.4 org.videolan.vlc.android
Pass 3:
D/vlc     ( 2633): using decoder module "avcodec"
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 2633   951 10072    S     158m 85.8   0 26.8 org.videolan.vlc.android
 2633   951 10072    S     158m 85.8   0 20.3 org.videolan.vlc.android
 2633   951 10072    R     158m 85.8   0 17.6 org.videolan.vlc.android
 2633   951 10072    S     158m 85.8   0 18.9 org.videolan.vlc.android
 2633   951 10072    S     158m 85.8   0 17.6 org.videolan.vlc.android
 2633   951 10072    S     158m 85.8   0 19.3 org.videolan.vlc.android

If you found this article helpful or interesting, please help Compdigitec spread the word. Don’t forget to subscribe to Compdigitec Labs for more useful and interesting articles!

Topics: Mobile | 2 Comments »

2 Responses to “Android codec benchmarks”

  1. Libavcodec - native NEON compile vs hybrid mode at Compdigitec Labs Says:
    October 4th, 2012 at 6:00 pm

    [...] Benchmarks using the latest VLC beta and benching whether a native build solely for NEON is faster or a hybrid build. The expectation is that the native build should be very slightly faster than the hybrid build. This is done on a TI OMAP 4460 (Galaxy Nexus). Method is same as previous benchmarks. [...]

  2. Android DTS benchmark - libavcodec vs libdca at Compdigitec Labs Says:
    January 4th, 2013 at 12:21 am

    [...] previous audio benchmark for [...]

Comments