libyuv的编译使用

最近在做嵌入式的视频播放器,先是使用了ffmpeg的sws_scale()去转换和缩放,后发现效率极低,然后又采用libyuv的方式,有资料说更换libyuv来进行图片格式转换后会效率高,在我试验过后效率高是高了,但是还没有到达预期,但也是一份收获,故记录下来。
1、源码下载
先后下载了几个,经测试,在我的环境下,下面地址的源码可用。
libyuv源码
2、环境说明
编译平台:ubuntu16.04
交叉编译链:arm-linux-gnueabihf-gcc 4.7.3
目标平台:imx6
3、编译

  1. 下载源码后解压并进入文件夹
  2. 修改linux.mk文件内容 CC = arm-linux-gnueabihf-gcc-4.7.3 CXX = arm-linux-gnueabihf-g++
  3. 执行 make -f linux.mk
    或者直接指定编译链 make -f linux.mk CC= arm-linux-gnueabihf-gcc-4.7.3 CXX = arm-linux-gnueabihf-g++
    4、结果:
    编译完成后,会出现libyuv.a文件和include文件夹,查看当前目录下可执行程序是否为ARM版本。是则编译成功。
    5、Qt添加包含:
	INCLUDEPATH += $$PWD/libyuv
	LIBS += -ldl -lm -lc $$PWD/libyuv.a

6、具体使用方法:
ps:我进行了简单的测试,没有真正的去完善,色调有点暖,你们可以不参考我的这个。

libyuv::I420ToRGB24(vpu->dec_buf,vpu->dec_width,&vpu->dec_buf[vpu->dec_width*vpu->dec_height],vpu->dec_width/2,&vpu->dec_buf[vpu->dec_width*vpu->dec_height*5/4],vpu->dec_width/2,testbuff,vpu->dec_width*3,vpu->dec_width,vpu->dec_height);
QImage image(testbuff,1280,720,QImage::Format_RGB888);

其中vpu->dec_buf为yuv数据buff
vpu->dec_width为buf数据的width
vpu->dec_height为buf数据的height。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值