关于图像YUV格式分类和排布方式的全学习

本文介绍了如何将两个不同大小的YUV420P图像(A:416*64,B:416*208)合并到一个416*416的画面上,涉及内存分配、数据拷贝和内存管理的过程。
摘要由CSDN通过智能技术生成

【学习笔记】关于图像YUV格式分类和排布方式的全学习_yuv图像-CSDN博客


下图是将多个yuv420p图像(A和B),拼接成一个画面的思路

A大小:416*64
B大小:416*208

将A和B合并到一个416*416的尺寸上,代码如下

            //整合
            char * ptd;
            ptd = (char * ) malloc (416*416*1.5);
			memset((char *)(ptd), 0, 416*416*1.5);//整体清0.
            //拷y
             memcpy(ptd,(char *)sc[0].dst.adr, 416*64);
			//拷y2
             memcpy((char *)((char *)ptd +416*64), (char *)sc[1].dst.adr, 416*208);
			//拷uv1
			// memcpy((char *)((char *)ptd +(416*416)), (char *)(sc[0].dst.adr+416*64), 416*64*0.5);
            memcpy((char *)((char *)ptd +(173056)), (char *)(sc[0].dst.adr+26624), 13312);
			//拷uv2
			//memcpy((char *)((char *)ptd +(416*416+416*64*0.5)), (char *)(sc[1].dst.adr+416*208), 43264);
            memcpy((char *)((char *)ptd +(186368)), (char *)(sc[1].dst.adr+416*208), 43264);

		
	
			memcpy(dev->mem[buf->index].start, ptd, 416*416*1.5);	
			buf->bytesused = 416*416*1.5;


            free(ptd);

FR:hunkxu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值