From linux-sunxi.org
Jump to: navigation, search

CedarX is the name of Allwinner's multimedia library for hardware accelerated video and image decoding, also incorrectly called VPU, as used inside all their SoC series.[1][2]

This library was initially closed source, but recently it was partially open sourced keeping only some codecs as closed source plugins.[3]



CedarX is composed of several parts, including:

  • A hardware video unit (video engine or "VE" for short)
    • Varous Features
      • Adaptive Motion Filter
      • 3D Anaglyph decoding
    • MPEG Decoder SubEngine
      • MPEG1
      • MPEG2
      • MPEG4
      • MS-MPEG
      • VP6
      • MJPEG (JPEG)
      • XDIV/DIVX (mpeg 3.11)
      • Soreson
    • H264 Decoder SubEngine
      • H264
      • VP8
      • AVS Jizun
    • VC1 Decoder SubEngine
      • WMV9
    • RMVB SubEngine
      • Real Media
    • ISP Engine (Image signal processor)
      • Alpha blending{need check}
      • Non-integer resize
    • AVC Encoder SubEngine
      • H264 Encode
      • JPEG Encode
      • MPEG Encode {need check}
  • A hardware audio codec engine (ACE) (only present in the A10)
    • Audio engines
      • DTS Audio hardware decoder
      • AC3 Audio hardware decoder
    • Codec engines
      • PNG (zlib's deflate offload)
      • TSCC Codec(zlib's deflate offload)

Benefits to Allwinner's CedarX technology and libraries:

  • Efficient use of system resources when decoding multimedia, offloading audio and video decoding to CedarX co-processor so that the CPU can be used for other things, (when CedarX is working as it should).
  • Allows small and low-powered ARM systems to playback high resolution/bitrate multimedia content, which would not be possible using software-only decoding using only the CPU.

Disadvantages Allwinner's CedarX technology and libraries:

  • Allwinner's own CedarX proprietary libraries are known to have no clear usage license, so even if the source code for some versions is available the terms-of-use is unknown in open source software. Allwinner is slowly working towards to resolve this issue.

  • The Android glue code is implemented as a "media player" (parallel to the official Android's MediaCodec API and underlying Stagefright multimedia framework) instead of as standard OpenMAX (OMX) components and API's.

  • This "media player" has limitations when it comes to playing back content pointed to by Android URIs and some web-based content.

  • There is no glue code for any other multimedia frameworks on GNU/Linux systems. The use of OpenMAX (OMX) instead would have rendered this a non-issue, with existing projects like GstOpenMAX (GStreamer OpenMAX).

Reverse engineering

The video engine is currently being reverse engineered with successful results. To the point of making possible an experimental vdpau implementation capable of being used to play videos.


CedarX official source code libraries and third-party forks

The following are old and obsolete, is not recommend for any use.

Possibly irrelevant observations

  • There seems to be a distinction in the Android code between audio decoding ("CedarA") and video decoding ("CedarV").


  1. http://www.j1nx.nl/buildroot-xbmc-on-mele-a1000-allwinner-a10/ Buildroot XBMC on the Mele A1000 (Allwinner A10)
  2. http://www.cnx-software.com/2012/11/12/xbmc-for-linux-on-allwinner-a10-devices-it-works-sort-of/ XBMC for Linux on AllWinner A10 Devices? It Works! (Sort of)
  3. http://www.phoronix.com/scan.php?page=news_item&px=Allwinner-CedarX-New-OSS Allwinner Publishes New CedarX Open-Source Code

See also

Personal tools