| 1 | | {{{#!html |
| 2 | | <div id="wikipage" class="trac-content"><p> |
| 3 | | </p><div class="wiki-toc"> |
| 4 | | <ol> |
| 5 | | <li> |
| 6 | | <a href="#VentanaGraphicsCapabilities">Ventana Graphics Capabilities</a> |
| 7 | | <ol> |
| 8 | | <li> |
| 9 | | <a href="#IPU-ImageProcessingUnit">IPU - Image Processing Unit</a> |
| 10 | | </li> |
| 11 | | <li> |
| 12 | | <a href="#VPU-VideoProcessingUnitCodecSupport">VPU - Video Processing Unit (Codec Support)</a> |
| 13 | | </li> |
| 14 | | <li> |
| 15 | | <a href="#GPU-GraphicsProcessingUnit">GPU - Graphics Processing Unit</a> |
| 16 | | </li> |
| 17 | | </ol> |
| 18 | | </li> |
| 19 | | </ol> |
| 20 | | </div><p> |
| 21 | | </p> |
| 22 | | <h1 id="VentanaGraphicsCapabilities">Ventana Graphics Capabilities</h1> |
| 23 | | <p> |
| | 1 | [[PageOutline]] |
| | 2 | |
| | 3 | = Ventana Graphics Capabilities |
| 25 | | </p> |
| 26 | | <ul><li><a class="wiki" href="/wiki/ventana/graphics#IPU-ImageProcessingUnit">IPU</a> - Image Processing Unit |
| 27 | | </li><li><a class="wiki" href="/wiki/ventana/graphics#VPU-VideoProcessingUnitCodecSupport">VPU</a> - Video Processing Unit |
| 28 | | </li><li><a class="wiki" href="/wiki/ventana/graphics#GPU-GraphicsProcessingUnit">GPU</a> - Graphics Processing Unit |
| 29 | | </li></ul><h2 id="IPU-ImageProcessingUnit">IPU - Image Processing Unit</h2> |
| 30 | | <p> |
| | 5 | * IPU - Image Processing Unit |
| | 6 | * VPU - Video Processing Unit |
| | 7 | * GPU - Graphics Processing Unit |
| | 8 | |
| | 9 | |
| | 10 | [=#ipu] |
| | 11 | == IPU - Image Processing Unit |
| 38 | | </p> |
| 39 | | <ul><li>The Gateworks Yocto BSP contains an IPU driver with an <a class="ext-link" href="https://github.com/Gateworks/linux-imx6/blob/gateworks_3.10.53_1.1.0_ga/include/uapi/linux/ipu.h"><span class="icon"></span>userspace ioctl API</a> |
| 40 | | </li><li>The IPU driver API is used by the gst-fsl-plugins and gstreamer-imx Gstreamer plugins |
| 41 | | </li><li>Other examples can be found here: |
| 42 | | <ul><li><a class="ext-link" href="https://community.freescale.com/docs/DOC-94961"><span class="icon"></span>https://community.freescale.com/docs/DOC-94961</a> |
| 43 | | </li><li><a class="ext-link" href="https://github.com/rogeriorps/ipu-examples"><span class="icon"></span>https://github.com/rogeriorps/ipu-examples</a> |
| 44 | | </li><li>imx-test package <a class="ext-link" href="http://downloads.yoctoproject.org/mirror/sources/imx-test-5.2.tar.gz"><span class="icon"></span>http://downloads.yoctoproject.org/mirror/sources/imx-test-5.2.tar.gz</a> |
| 45 | | </li></ul></li></ul><h2 id="VPU-VideoProcessingUnitCodecSupport">VPU - Video Processing Unit (Codec Support)</h2> |
| 46 | | <p> |
| 47 | | The Video Processing Unit in the IMX6 is a CODA960 licensed IP block provided by Chips&Media supporting the following codecs: |
| 48 | | </p> |
| 49 | | <ul><li>Encode: |
| 50 | | <ul><li>H.264 BP/CBP |
| 51 | | </li><li>H.263 V2 |
| 52 | | </li><li>MPEG-4 SP |
| 53 | | </li><li>MPEG-2 |
| 54 | | </li><li>MJPEG Baseline |
| 55 | | </li></ul></li><li>Decode: |
| 56 | | <ul><li>MPEG-2 MP/HP |
| 57 | | </li><li>H.264 BP/MP/HP |
| 58 | | </li><li>H.264 MVC BP/MP/HP |
| 59 | | </li><li>VC1 SP/MP/AP |
| 60 | | </li><li>MPEG-4/Xvid SP/ASP |
| 61 | | </li><li>DivX v3/4/5/6 |
| 62 | | </li><li>H.263 V2 |
| 63 | | </li><li>MJPEG Baseline |
| 64 | | </li><li>VP6/VebM VP8 |
| 65 | | </li></ul></li></ul><p> |
| | 18 | * The Gateworks Yocto BSP contains an IPU driver with a [https://github.com/Gateworks/linux-imx6/blob/gateworks_3.10.53_1.1.0_ga/include/uapi/linux/ipu.h userspace ioctl API] |
| | 19 | * The IPU driver API is used by the gst-fsl-plugins and gstreamer-imx Gstreamer plugins |
| | 20 | * Other examples can be found here: |
| | 21 | * https://community.freescale.com/docs/DOC-94961 |
| | 22 | * https://github.com/rogeriorps/ipu-examples |
| | 23 | * imx-test package http://downloads.yoctoproject.org/mirror/sources/imx-test-5.2.tar.gz |
| | 24 | |
| | 25 | |
| | 26 | [=#vpu] |
| | 27 | == VPU - Video Processing Unit (Codec Support) |
| | 28 | The Video Processing Unit in the IMX6 is a CODA960 licensed IP block provided by Chips&Media supporting the following codecs: |
| | 29 | |
| | 30 | Encode: |
| | 31 | * H.264 BP/CBP |
| | 32 | * H.263 V2 |
| | 33 | * MPEG-4 SP |
| | 34 | * MPEG-2 |
| | 35 | * MJPEG Baseline |
| | 36 | |
| | 37 | Decode: |
| | 38 | * MPEG-2 MP/HP |
| | 39 | * H.264 BP/MP/HP |
| | 40 | * H.264 MVC BP/MP/HP |
| | 41 | * VC1 SP/MP/AP |
| | 42 | * MPEG-4/Xvid SP/ASP |
| | 43 | * DivX v3/4/5/6 |
| | 44 | * H.263 V2 |
| | 45 | * MJPEG Baseline |
| | 46 | * VP6/VebM VP8 |
| | 47 | |
| 67 | | </p> |
| 68 | | <ul><li>IMX6SOLO/DUALLITE (IMX6SDL): |
| 69 | | <ul><li>HD 1080p30Hz + D1 decode |
| 70 | | </li><li>HD 1080p30Hz or 2x 720p encode |
| 71 | | </li></ul></li><li>IMX6DUAL/I.MX6QUAD (IMX6DQ) (2 IPU's): |
| 72 | | <ul><li>HD 1080p60Hz + D1 or 2x 1080p30Hz Decode |
| 73 | | </li><li>HD 1080p30Hz or 2x 720p encode |
| 74 | | </li></ul></li></ul><p> |
| | 49 | * IMX6SOLO/DUALLITE (IMX6SDL): |
| | 50 | * HD 1080p30Hz + D1 decode |
| | 51 | * HD 1080p30Hz or 2x 720p encode |
| | 52 | * IMX6DUAL/I.MX6QUAD (IMX6DQ) (2 IPU's): |
| | 53 | * HD 1080p60Hz + D1 or 2x 1080p30Hz Decode |
| | 54 | * HD 1080p30Hz or 2x 720p encode |
| | 55 | |
| 76 | | </p> |
| 77 | | <ul><li>Yocto BSP packages: |
| 78 | | <ul><li>firmware-imx-vpu-imx6q - contains firmware (/lib/firmware/vpu/vpu_fw_imx6q.bin) for IMX6DUAL/IMX6QUAD |
| 79 | | </li><li>firmware-imx-vpu-imx6d - contains firmware (/lib/firmware/vpu/vpu_fw_imx6d.bin) for IMX6DUALLITE/IMX6SOLO |
| 80 | | </li><li>libfslvpuwrap3 / libvpu4 - libraries |
| 81 | | </li><li>gst-fsl-plugin - gstreamer plugin support for IMX6 VPU |
| 82 | | </li><li>libfslcodec-* - various gstreamer libraries |
| 83 | | </li></ul></li><li>Documentation: |
| 84 | | <ul><li>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) |
| 85 | | </li></ul></li></ul><p> |
| | 57 | * Yocto BSP packages: |
| | 58 | * firmware-imx-vpu-imx6q - contains firmware (/lib/firmware/vpu/vpu_fw_imx6q.bin) for IMX6DUAL/IMX6QUAD |
| | 59 | * firmware-imx-vpu-imx6d - contains firmware (/lib/firmware/vpu/vpu_fw_imx6d.bin) for IMX6DUALLITE/IMX6SOLO |
| | 60 | * libfslvpuwrap3 / libvpu4 - libraries |
| | 61 | * gst-fsl-plugin - gstreamer plugin support for IMX6 VPU |
| | 62 | * libfslcodec-* - various gstreamer libraries |
| | 63 | |
| | 64 | Documentation: |
| | 65 | * 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) |
| | 66 | |
| 93 | | </p> |
| 94 | | <ul><li>IMX6DUAL/QUAD: |
| 95 | | <ul><li>Vivante GC2000 (3D GPU) |
| 96 | | <ul><li>Clock: 600-800MHz (the IMX6 clocks this at 533MHz) |
| 97 | | </li><li>176Mtri/s |
| 98 | | </li><li>1000Mpxl/s |
| 99 | | </li><li>OpenGL ES 1.1/2.0/3.0 |
| 100 | | </li><li>OpenCL 1.1 EP |
| 101 | | </li><li>Cores: 1 |
| 102 | | </li><li>Shaders: 4 (Vec-4) and 16 (Vec-1) |
| 103 | | </li></ul></li><li>Vivante GC355 (2D GPU - vector graphics) |
| 104 | | <ul><li>300Mpxl/s |
| 105 | | </li><li>OpenVG 1.1 |
| 106 | | </li></ul></li><li>Vivante GC320 (2D GPU - blit) |
| 107 | | <ul><li>600Mpxl/s |
| 108 | | </li></ul></li></ul></li><li>IMX6DUALLITE/SOLO: |
| 109 | | <ul><li>Vivante GC880 GPU |
| 110 | | <ul><li>Clock: 600-800MHz (the IMX6 clocks this at 400MHz) |
| 111 | | </li><li>53Mtri/s |
| 112 | | </li><li>266Mpxl/s |
| 113 | | </li><li>OpenGL ES 1.1/2.0/3.0 |
| 114 | | </li><li>Cores: 1 |
| 115 | | </li><li>Shaders: 1 (Vec-4) and 4 (Vec-1) |
| 116 | | </li><li>OpenVG 1.1 (no GC320 on this SoC, so 2D vector graphics is through the GC880) |
| 117 | | </li></ul></li><li>Vivante GC320 (2D GPU - blit) |
| 118 | | <ul><li>600Mpxl/s |
| 119 | | </li></ul></li></ul></li></ul><p> |
| | 74 | * IMX6DUAL/QUAD: |
| | 75 | - Vivante GC2000 (3D GPU) |
| | 76 | * Clock: 600-800MHz (the IMX6 clocks this at 533MHz) |
| | 77 | * 176Mtri/s |
| | 78 | * 1000Mpxl/s |
| | 79 | * OpenGL ES 1.1/2.0/3.0 |
| | 80 | * OpenCL 1.1 EP |
| | 81 | * Cores: 1 |
| | 82 | * Shaders: 4 (Vec-4) and 16 (Vec-1) |
| | 83 | - Vivante GC355 (2D GPU - vector graphics) |
| | 84 | * 300Mpxl/s |
| | 85 | * OpenVG 1.1 |
| | 86 | - Vivante GC320 (2D GPU - blit) |
| | 87 | * 600Mpxl/s |
| | 88 | * IMX6DUALLITE/SOLO: |
| | 89 | - Vivante GC880 GPU |
| | 90 | * Clock: 600-800MHz (the IMX6 clocks this at 400MHz) |
| | 91 | * 53Mtri/s |
| | 92 | * 266Mpxl/s |
| | 93 | * OpenGL ES 1.1/2.0/3.0 |
| | 94 | * Cores: 1 |
| | 95 | * Shaders: 1 (Vec-4) and 4 (Vec-1) |
| | 96 | * OpenVG 1.1 (no GC320 on this SoC, so 2D vector graphics is through the GC880) |
| | 97 | - Vivante GC320 (2D GPU - blit) |
| | 98 | * 600Mpxl/s |
| | 99 | |
| 121 | | </p> |
| 122 | | <ul><li>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) |
| 123 | | </li><li>OpenGL ES 1.1/2.0 (Open Graphics Library - for 2D and 3D vector graphics) |
| 124 | | </li><li>OpenVG 1.1 (Vector Graphics Acceleration) |
| 125 | | </li></ul><p> |
| | 101 | * 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) |
| | 102 | * OpenGL ES 1.1/2.0 (Open Graphics Library - for 2D and 3D vector graphics) |
| | 103 | * OpenVG 1.1 (Vector Graphics Acceleration) |
| | 104 | |
| 127 | | </p> |
| 128 | | <ul><li>Yocto BSP packages: |
| 129 | | <ul><li>gpu-viv-bin-mx6q |
| 130 | | </li><li>xf86-video-imxfb-vivante - accelerated X11 server using the GPU |
| 131 | | </li></ul></li><li>Documentation: |
| 132 | | <ul><li>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) |
| 133 | | </li><li>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) |
| 134 | | </li><li>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) |
| 135 | | </li><li>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) |
| 136 | | </li><li>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) |
| 137 | | </li></ul></li></ul |
| 138 | | }}} |
| | 106 | * Yocto BSP packages: |
| | 107 | - gpu-viv-bin-mx6q |
| | 108 | - xf86-video-imxfb-vivante - accelerated X11 server using the GPU |
| | 109 | * Documentation: |
| | 110 | - 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) |
| | 111 | - 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) |
| | 112 | - 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) |
| | 113 | - 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) |
| | 114 | - 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) |