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

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



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 A10, modern A20,A13 have no this module)
    • 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 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 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.
  • 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 current being reverse engineered with successful results. To the point of making possible an experimental vdpau implementation capable of be used to play videos.


CedarX official source code libraries and third-party forks

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)

See also

Personal tools