一篇文章让你明白YUV(YUV444,YUV 422..)和RGB(RGB565、RGB555...)

图片、视频由RGB或YUV数据组成

**说明:
1.YUV 家族分为YUV444、YUV422、YUV420
注意:Cb、Cr的含义等同于U、V 即 Y Cb Cr=Y U V

YUV 家谱
YUV444 (每一个Y对应一组UV分量)
YUV422 (每两个Y共用一组UV分量)
YUV420 (每四个Y共用一组UV分量)

一、YUV分为YUV444、YUV422、YUV420

1、YUV444数据格式(每个Y用一组UV分量):

w=width //图片宽度
h=high //图片高度
p=w*h //图片像素总数
c=p*3 //数组总长度

数组总长度c=p*3 : 一个像素点是由 YUV 三个分量组成

图片数组:img[c]={Y0,U0,V0,Y1,U1,V1,...,Yp-1,Up-1,Vp-1};
内存分布图:
				W=图片宽度w*3
						W
        +------------------------------+
        |Y0,U0,V0,Y1,V1,U1,...         |
        |...     		               |   h
        |...        		           |
        |      		    	           |
        +------------------------------+
        				W

img[c]:

bit 1 bit 2 bit 3 bit c-2 bit c-1 bit c
Y0 U0 V0 Yp Up Vp
代码:	
	//提取Y U V 值
	with=图片宽度 
	high=图片高度
	unsigned char Y[with*high];
	unsigned char U[with*high];
	unsigned char V[with*high];
	for(int i=0;i<with*high;i++)
	{
		Y[i]=img[(i*3)];
		U[i]=img[(i*3)+1];
		V[i]=img[(i*3)+2];
	}

拓展:YUV444把U和V位置互换就是YVU444

2、YUV422家谱(每两个Y共用一组UV分量)

YUV422 的家谱
YUYV (拓展YVYU)
UYVY(拓展VYUY)
YUV422P (拓展YVU422P)

2.1 YUYV数据格式:

w=width //图片宽度
h=high //图片高度
p=w*h //图片像素总数
c=p*2 //数组总长度
d=(w*h)/2 //一半像素
数组总长度c=p*2: 每两个Y共用一组UV分量,比YUV444 节约 1/3 内存

图片数组:img[c]={Y0,U0,Y1,V0,Y2,U1,Y3,V1,...,Yp-2,Ud-1,Yp-1,Vd-1};
内存分布图:
         		   W=图片宽度w*2
         		   	      W
        +-----------------------------------+
        |Y0,U0,Y1,V0,Y2,U1,Y3,V1...         |
        |...     			                |   high
        |...   		       			        |
        |      		     			        |
        +-----------------------------------+
					     W

img[c]:

bit 1 bit 2 bit 3 bit 4 bit c-3 bit c-2 bit c-1 bit c
Y0 U0 Y1 V0 Yp-2 Ud-1 Yp-1 Vd-1

拓展:YUYV把U和V位置互换就是YVYU

2.2 UY

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值