Version 2 (modified by Tim Harvey, 5 years ago) ( diff )

convert restored html back to wiki markup

Ventana Graphics Capabilities

The IMX6 CPU contains the following hardware graphics accelerators:

  • IPU - Image Processing Unit
  • VPU - Video Processing Unit
  • GPU - Graphics Processing Unit

IPU - Image Processing Unit

The Image Processing Unit contains hardware support for the following:

  • Image Re-sizing and Blending
  • Image Enhancement
  • Image Inversion / Rotation

Software support:

VPU - Video Processing Unit (Codec Support)

The Video Processing Unit in the IMX6 is a CODA960 licensed IP block provided by Chips&Media supporting the following codecs:


  • H.264 BP/CBP
  • H.263 V2
  • MPEG-4 SP
  • MPEG-2
  • MJPEG Baseline


  • MPEG-2 MP/HP
  • H.264 BP/MP/HP
  • H.264 MVC BP/MP/HP
  • VC1 SP/MP/AP
  • MPEG-4/Xvid SP/ASP
  • DivX v3/4/5/6
  • H.263 V2
  • MJPEG Baseline
  • VP6/VebM VP8


    • HD 1080p30Hz + D1 decode
    • HD 1080p30Hz or 2x 720p encode
    • HD 1080p60Hz + D1 or 2x 1080p30Hz Decode
    • HD 1080p30Hz or 2x 720p encode

Software support:

  • Yocto BSP packages:
    • firmware-imx-vpu-imx6q - contains firmware (/lib/firmware/vpu/vpu_fw_imx6q.bin) for IMX6DUAL/IMX6QUAD
    • firmware-imx-vpu-imx6d - contains firmware (/lib/firmware/vpu/vpu_fw_imx6d.bin) for IMX6DUALLITE/IMX6SOLO
    • libfslvpuwrap3 / libvpu4 - libraries
    • gst-fsl-plugin - gstreamer plugin support for IMX6 VPU
    • libfslcodec-* - various gstreamer libraries


  • Yocto BSP's - i.MX_6_VPU_Application_Programming_Interface_Linux_Reference_Manual.pdf (from the Freescale i.MX6 Yocto BSP releases which you must download from Freescale)


  • Freescale IMX6VPUAPI documents the VPU API - This is from the LINUXDOCS_BUNDLE downloadable from Freescale's IMX6 site - check there for the most recent version

GPU - Graphics Processing Unit

The IMX6 contains 2D and 3D GPU support from Vivante with some variations based on the specific IMX SoC:

    • Vivante GC2000 (3D GPU)
      • Clock: 600-800MHz (the IMX6 clocks this at 533MHz)
      • 176Mtri/s
      • 1000Mpxl/s
      • OpenGL ES 1.1/2.0/3.0
      • OpenCL 1.1 EP
      • Cores: 1
      • Shaders: 4 (Vec-4) and 16 (Vec-1)
    • Vivante GC355 (2D GPU - vector graphics)
      • 300Mpxl/s
      • OpenVG 1.1
    • Vivante GC320 (2D GPU - blit)
      • 600Mpxl/s
    • Vivante GC880 GPU
      • Clock: 600-800MHz (the IMX6 clocks this at 400MHz)
      • 53Mtri/s
      • 266Mpxl/s
      • OpenGL ES 1.1/2.0/3.0
      • Cores: 1
      • Shaders: 1 (Vec-4) and 4 (Vec-1)
      • OpenVG 1.1 (no GC320 on this SoC, so 2D vector graphics is through the GC880)
    • Vivante GC320 (2D GPU - blit)
      • 600Mpxl/s

According to Freescale this GPU supports the following open standards:

  • OpenCL 1.1 Embedded Profile (EP) (Open Computing Language - framework for writing programs that execute across a heterogeneous platform consisting of CPUs, GPUs, DSPs, etc)
  • OpenGL ES 1.1/2.0 (Open Graphics Library - for 2D and 3D vector graphics)
  • OpenVG 1.1 (Vector Graphics Acceleration)

Software Support:

  • Yocto BSP packages:
    • gpu-viv-bin-mx6q
    • xf86-video-imxfb-vivante - accelerated X11 server using the GPU
  • Documentation:
    • Yocto v1.3 - i.MX_6_G2D API.pdf (from the Freescale i.MX6 LTIB L3.0.35_1.0.0-GA BSP release which you must download from Freescale)
    • Yocto v1.6 / v1.7 - i.MX_6_G2D_API_User's_Guide.pdf (from the Freescale i.MX6 Yocto L3.10.17_1.0.0-GA BSP release which you must download from Freescale)
    • Yocto master - i.MX_6_Graphics_User's_Guide.pdf (from the Freescale i.MX6 Yocto L3.10.53_1.1.0-GA BSP release which you must download from Freescale)
    • Android JB4.3 - i.MX_6_G2D_API_User_Guide.pdf (from the Freescale i.MX6 Android JB4.3_1.1.0-GA BSP release which you must download from Freescale)
    • Android KK4.4.3 - i.MX_6_Graphics_User's_Guide.pdf (from the Freescale i.MX6 Android KK4.4.3_2.0.0-GA BSP release which you must download from Freescale)
Note: See TracWiki for help on using the wiki.