Version 1 (modified by 7 years ago) ( diff ) | ,
---|
Ventana Graphics Capabilities
The IMX6 CPU contains the following hardware graphics accelerators:
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:
- The Gateworks Yocto BSP contains an IPU driver with an userspace ioctl API
- The IPU driver API is used by the gst-fsl-plugins and gstreamer-imx Gstreamer plugins
- Other examples can be found here:
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:
- Encode:
- H.264 BP/CBP
- H.263 V2
- MPEG-4 SP
- MPEG-2
- MJPEG Baseline
- Decode:
- 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
Performance:
- IMX6SOLO/DUALLITE (IMX6SDL):
- HD 1080p30Hz + D1 decode
- HD 1080p30Hz or 2x 720p encode
- IMX6DUAL/I.MX6QUAD (IMX6DQ) (2 IPU's):
- 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
- Documentation:
- 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)
References:
- Freescale IMX6VPUAPI - This is from the LINUXDOCS_BUNDLE downloadable from Freescale's IMX6 site - check there for the most recent version
- this documents the VPU Application Programming Interface
GPU - Graphics Processing Unit
The IMX6 contains 2D and 3D GPU support from Vivante with some variations based on the specific IMX SoC:
- IMX6DUAL/QUAD:
- 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 GC2000 (3D GPU)
- IMX6DUALLITE/SOLO:
- 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
- Vivante GC880 GPU
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)
</ul
Note:
See TracWiki
for help on using the wiki.