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

专栏说明

        本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2)、视频编解码(VPU)、视频格式转化(IPU)、H264封装为MP4、QT5的移植和显示。

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

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

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

        飞思卡尔 I.MX6Q-封装H246为MP4

        飞思卡尔 I.MX6Q-高分辨率(1080P)视频采集编码

        飞思卡尔I.MX6Q-QT5的移植

        飞思卡尔 I.MX6Q-摄像头采集QT5显示和分辨率适配

前言

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

一、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');

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ProYuan28

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值