飞思卡尔 I.MX6Q-ipu视频流格式转换

原创 2016年08月29日 16:44:38

前言


    飞思卡尔的vpu可以实现硬件的编解码,同时也提供了ipu接口,可以实现视频流格式的转换,例如YUV422转为YUV420,YUV422转化为RGB888,当然我们也可以通过软件纯代码实现这些功能,但有时候代码实现总是有许多的缺陷,当你视频流很大时,纯代码就无法实现我们想要的效果。


一、ipu环境配置


    首先,你需要配置好LTIB环境,如果你没配置好,可以参考文档飞思卡尔I.MX6Q-LTIB安装配置去配置,配置完成可以在/ltib/rpm/BUILD/linux-3.0.35/include/linux/目录下找到ipu.h和mxcfb.h,还有一个ipu的库文件/ltib/rootfs/usr/lib/libipu.so,如果你没找到或者没有去配置LTIB环境,也可以直接去下载这些头文件和库文件:点击打开链接,有了ipu的配置环境,后面的程序才能编译通过。


二、ipu视频流格式转换例子实现


    ipu不仅可以实现YUV到YUV的转换,还可以实现YUV到RGB转换,同时也可以实现分辨率的改变;对于有些摄像头只支持YUV422的输出,但是如果你编码需要YUV420的视频流,这时候你就需要IPU的转化;如果你需要对摄像头采集数据通过界面显示刷新出来,摄像头采集YUV的数据,通过IPU转化为RGB,就可以通过界面刷新显示;IPU改变分辨率可以实现不同屏幕大小的适配,但需特别强调,输入分辨率只能实现输入小于1024X1024,大于这两个数值会出错。实现上面这些功能代码基本差不多,就改变一些参数就可以了。核心代码如下:

      // Input image size and format
	task.input.width    = 1920;
	task.input.height   = 1080;
	task.input.format   = v4l2_fourcc('N', 'V', '1', '2');
 
	// Output image size and format
	task.output.width   = 640;
	task.output.height  = 480;
	task.output.format  = v4l2_fourcc('R', 'G', 'B', '3');<span style="white-space:pre">	</span>


width、height可以改变输入、输出的分辨率;
v4l2_fourcc里面的参数可以实现YUV到YUV的转换,或者YUV到RGB的转换,对于有哪些格式,你可以去ipu.h中去看;
例子代码下载:http://download.csdn.net/detail/u012478275/9616037


版权声明:本文为博主原创文章,未经博主允许不得转载。

项目中QNX的USB驱动开发的反思

author 锋影 e-mail:174176320@qq.com 项目中QNX的USB驱动开发的反思
  • xjhhjx
  • xjhhjx
  • 2017年04月09日 13:49
  • 470

关于车机互联方式的一点想法

关于车机互联方式,现阶段有两种主要方式: 1.车机与手机互联后,手机的内容通过usb或wifi投射到车机端,车机端或直接显示,或做一定的修改再显示。 2.车机端几乎不与手机发生数据交互,而仅仅利用...

飞思卡尔 I.MX6Q-vpu视频编解码

前言 对应使用飞思卡尔的vpu进行硬件编解码,你需要配置出你linux下LTIB环境,导出imx-test中的mxc_vpu_test源码,这方面的内容在之前文档已经说明,可以去查看,这篇文章主要...

飞思卡尔I.MX6Q-LTIB安装配置

LTIB安装 LTIB安装还是非常方便的,下面是具体的步骤: Step1. 下载Freescale官方BSP 我是用的BSP版本:L3.0.35_4.1.0_130816_source.tar....

飞思卡尔I.MX6Q-LTIB安装配置

实测可用,转载来自:http://blog.csdn.net/u012478275/article/details/51240592 LTIB安装 LTIB安装还是非常方便的,下面是具体的...

飞思卡尔i.MX 6Quad Android 4.2.2的LVDS屏幕驱动移植 &uboot环境变量选择屏幕

1      概述 平台:freescale i.MX 6Quad 4核开发板MCIMX6Q-SDB(不带屏幕) 操作系统:Android 4.2.2_1 内核:3.0.35 显示屏:LG的L...

飞思卡尔i.MX 6Quad Android 4.0.4的3G驱动移植

1      概述 平台:freescale i.MX 6Quad 4核开发板Sabrelite 操作系统:Android 4.0.4 内核:3.0.15 3G模块:中兴MG3732和UbloxLIS...
  • xnwyd
  • xnwyd
  • 2013年07月26日 16:58
  • 6945

飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植

1      概述 平台:freescale i.MX 6Quad 4核开发板Sabre-sd(不带屏幕) 操作系统:Android 4.2.2_r1(代码补丁为android_jb4.2...
  • jack_a8
  • jack_a8
  • 2015年01月25日 13:45
  • 1694

[i.MX]飞思卡尔IMX6处理器的GPIO-IOMUX_PAD说明

在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样: #define MX6Q_PAD_GPIO_19__GPIO...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:飞思卡尔 I.MX6Q-ipu视频流格式转换
举报原因:
原因补充:

(最多只允许输入30个字)