Changes between Initial Version and Version 1 of ventana/graphics


Ignore:
Timestamp:
10/21/2017 10:28:45 PM (10 months ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ventana/graphics

    v1 v1  
     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>
     24The IMX6 CPU contains the following hardware graphics accelerators:
     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>
     31The Image Processing Unit contains hardware support for the following:
     32</p>
     33<ul><li>Image Re-sizing and Blending
     34</li><li>Image Enhancement
     35</li><li>Image Inversion / Rotation
     36</li></ul><p>
     37Software support:
     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>
     47The Video Processing Unit in the IMX6 is a CODA960 licensed IP block provided by Chips&amp;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>
     66Performance:
     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>
     75Software support:
     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>
     86References:
     87</p>
     88<ul><li><a class="ext-link" href="https://community.freescale.com/servlet/JiveServlet/download/317735-256858/VPU_API_RM_L3.0.35_1.1.0.pdf"><span class="icon">​</span>Freescale IMX6VPUAPI</a> - This is from the LINUXDOCS_BUNDLE downloadable from Freescale's IMX6 site - check there for the most recent version
     89<ul><li>this documents the VPU Application Programming Interface
     90</li></ul></li></ul><h2 id="GPU-GraphicsProcessingUnit">GPU - Graphics Processing Unit</h2>
     91<p>
     92The IMX6 contains 2D and 3D GPU support from Vivante with some variations based on the specific IMX SoC:
     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>
     120According to Freescale this GPU supports the following open standards:
     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>
     126Software Support:
     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}}}