| 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 | | |
| 48 | | Performance: |
| 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 | | |
| 56 | | Software support: |
| 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 | | |
| 67 | | References: |
| 68 | | * [https://community.freescale.com/servlet/JiveServlet/download/317735-256858/VPU_API_RM_L3.0.35_1.1.0.pdf 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 |