Video, Image and Audio formats are covered by this page. While we have looked in the past at speech and audio processing libs (speex), these are not generally a focus item for the Graphics Working Group.

ffmpeg and libav are related. Libav is a fork of ffmpeg.

With ARMv7 support, we attempt to note the nature of existing ARM optimizations. None, hand coded NEON, or NEON intrinsics.

Priorities

The last discussion surrounding the priority of Media and Library work was held at LCA14. From this discussion, the consensus continues to be:

  • Video codecs
  • Image codecs
  • audio codecs

Platform priorities are:

  • Android
  • Chromium
  • Linux

Current backlog priority order is:

  • mpeg4 (as part of ffmpeg/libav)
  • webrtc (audio portion)
  • aac  (from AOSP)
  • flac
  • vorbis
  • mp3
  • h265 (upstream implementation is under development, thus this can wait a bit)
  • speex

Libraries Used by Android

Project

Format(s)

ARMV8 Support

ARMv7 Support

Status/Card

libvpx

VP8, VP9

yes (NEON Intrinsics)

yes (handcoded &intrinsics)

https://cards.linaro.org/browse/CARD-1088 https://cards.linaro.org/browse/CARD-1089

ffmpeg

Many, many (vorbis, mpeg4, h263, h264, ...)

No

Yes (varies)

mpeg4

libjpeg

jpeg

No (libjpeg-turbo)

Yes (unoptimized)

card 404

libpng

PNG

Yes (intrinsics)

Yes (intrinsics)

Complete

giflib

gif

No

Yes (?)

libwebp

webp

No

Yes (handcoded)

Complete??

mp3

No

Yes (?)

http://flac.sourceforge.net/

flac

No

Yes (?)

card 1227

FDK AAC

AAC

No

Yes (?)

card 1226

libyuv

Yes (NEON?)

Yes (NEON)

Browser Media Libraries

Chromiuim

Project

Format(s)

ARMV8 Support

ARMv7 Support

Status/Card

libvpx

VP8, VP9

yes

yes

https://cards.linaro.org/browse/CARD-1088 https://cards.linaro.org/browse/CARD-1089

libjpeg-turbo

jpeg

Yes (NEON)

Yes (NEON)

Complete

libpng

PNG

Yes (intrinsics)

Yes (intrinsics)

Complete

libwebp

webp

No

Yes (handcoded)

ffmpeg

Many, many (vorbis, mpeg4, h263, h264, gif)

No

Yes (varies)

mpeg4

mp3

No

Yes (?)

http://flac.sourceforge.net/

flac

No

Yes (?)

card 1227

AAC

No

Yes (?)

card 1226

WebRTC

Multiple audio codecs with libvpx for video

No

Yes (NEON was evaluated as poor)

card 1225

FireFox (WIP)

Project

Format(s)

ARMV8 Support

ARMv7 Support

Status/Card

libpng

PNG

Yes (intrinsics)

Yes (intrinsics)

Complete

Linux Media Libraries

Project

Format(s)

ARMV8 Support

ARMv7 Support

Status/Card

libjpeg-turbo

jpeg

Yes (NEON)

Yes (NEON)

Complete

libpng

PNG

Yes (intrinsics)

Yes (intrinsics)

Complete

libav (fork of ffmpeg)

Many, many

No

Yes (varies)

none

ffmpeg

Many, many

No

Yes (varies)

none

libvorbis

Vorbis

No

Yes (none)

Viswanath Puttagunta

Speex

Speex

No

Patches exist

card 1229

libv4lconvert

Used by capture apps

No

Yes (No NEON)

none

Opus

Opus

No

Yes (No NEON)

FreeRDP

RDP

No

Yes (Poor/broken NEON)

None

10bit H264

H264

No

No

none

H265 (HEVC)

H265

No

No

card 936

webm

webp

No

Yes (handcoded)

Complete

WorkingGroups/Middleware/Multimedia/NeonStatus (last modified 2014-07-03 12:51:54)