博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
视频采集处理之YUV数据格式
阅读量:4298 次
发布时间:2019-05-27

本文共 2615 字,大约阅读时间需要 8 分钟。

本设计中使用的USB摄像头输出视频数据是YUV422格式,只有弄清楚了YUV数据格式,才能通过编程获取正确的视频数据,下面就分析一下YUV422数据格式。

YUV的原理是亮度信息Y与色度信息UV分离,其中”Y”表示明亮度(Lumina nce或Luma),也就是灰阶值;而”U”和”V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。当只提取Y信息的时候,视频呈现黑白画面,也就是常说的灰度图像。
常见的YUV格式有:YUV444 YUV422 YUV420…….
YUV422是两个亮度信息Y共用一对UV信息。
每种YUV数据格式根据YUV分量存储的方式不同,又分成平面格式和打包格式。平面格式是指先存完Y分量再存U分量,再存V分量。打包格式是指YUV三分量按照一定的采样格式存储。比如YUV422的一种打包格式就是Y0 U0 Y1 V0 Y2 U2 Y3 V2…….
下面在分析一下YUV数据格式表示的每个像素点占的空间大小:
YUV444:色度信号的分辨率和亮度信号的分辨率是相同的,单位像素占的字节数: (4+4+4)/4 = 3,4:4:4 格式是一个打包格式,其中每个像素都被编码为四个连续字节,AYUV 内存布局组织顺序如下所示(标记了 A 的字节包含 alpha 的值)
| U0 | V0 | Y0 | A0 | | U1 | V1 | Y1 | A1 | | U2 | V2 | Y2 | A2 | ……
YUV444——>32bitspp
YUV422:色度信号的扫描线数量和亮度信号一样多,但是每条扫描线上的色度采样点数却只有亮度信号的一半。单位像素占的字节数: (4+2+2)/4 = 2。
YUV422——>16bitspp
YUV422又分为两种格式:YUY2 UYVY
YUY2在内存的存放方式是:| Y0 | V0 | Y1 | V0 | | Y2 | U1 | Y3 | V1 | | Y4 | U2 | Y5 | V2 | ……
UYVY在内存的存放方式是:| U0 | Y0 | V0 | Y1 | | U1 | Y2 | V1 | Y3 | | U2 | Y4 | V2 | Y5 | ……
YUV420:无论是横向还是纵向,色度信号的分辨率都只有亮度信号的一半,单位像素占的字节数: (4+1+1)/4 = 1.5。
YUV420——>16bitspp
两种存放格式:
1、
| Y0 | Y1 | Y2 | Y3| ……
| U0 | U1 | ……
| V0 | V1 | ……
2、
| Y0 | Y1 | Y2 | Y3| ……
| V0 | V1 | ……
| U0 | U1 | ……
YUV经常有另外的名字, YCbCr ,其中Y与YUV 中的Y含义一致,Cb , Cr 同样都指色彩,,只是在表示方法上不同而已,Cb Cr 就是本来理论上的“分量/色差”的标识。C代表分量(是component的缩写)Cr、Cb分别对应r(红)、b(蓝)分量信号,Y除了g(绿)分量信号,还叠加了亮度信号。
RGB数据格式
RGB色彩模式通常用格式RGB(0,0,0)来表示颜色,括号中的3个数字分别表示红、绿、蓝的亮度值。如:黑色RGB(0,0,0)、白色RGB(255,255,255)、红色RGB(255,0,0)。
当红、绿、蓝三种颜色分量相同时就会形成灰色,比如RGB(128,128,128)。灰度颜色有256种变化,即从RGB(0,0,0)到RGB(255,255,255)共256种颜色。

RGB565

RGB565彩色模式, 一个像素占两个字节, 其中:
低字节的前5位用来表示B(BLUE)
低字节的后三位+高字节的前三位用来表示G(Green)
高字节的后5位用来表示R(RED)
Memory Layout如图:

RGB565,RGB555,RGB888的区别

正常的RGB24是由24位即3个字节来描述一个像素,R、G、B各8位。而实际使用中为了减少图像数据的尺寸,如视频领域,对R、G、B所使用的位数进行的缩减,如你所说的RGB565和RGB555。
RGB565 就是R-5bit,G-6bit,B-5bit
RGB555 就是R-5bit,G-5bit,B-5bit
RGB888 就是R-8bit,G-8bit,B-8bit ;其实这就是RGB24
至于Bitmap那是在RGB的像素数据基础上增加位图头数据而形成的文件格式。

一般BMP是RGB888, JPEG是YUV的。

RGB565 是16位的,2个字节,5+6+5,第一字节的前5位是R,后三位+第二字节前三位是G,第二字节后5位是B。
RGB555 也是16位的,2个字节,RGB各5位,有1位未用。
RGB888 是24位的,3个字节。

RGB数据的存放方式和YUV的打包格式存放方式相似。

YUV与RGB之间的换算:
RGB 转换成 YUV的标准公式
Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
Cr = V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
Cb = U = -( 0.148 * R) - (0.291 * G) + (0.439 * B) + 128
YUV 转换成 RGB的标准公式
B = 1.164(Y - 16) + 2.018(U - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
R = 1.164(Y - 16) + 1.596(V - 128)
RGB取值范围均为0~255,Y=0~255,U=-122~+122,V=-157~+157

RGB转YUV的简化公式

Y = 0.299R + 0.587G + 0.114B

U’= (BY)*0.565

V’= (RY)*0.713
YUV转RGB的简化公式
R = Y + 1.403V’
G = Y - 0.344U’ - 0.714V’
B = Y + 1.770U’

通常情况下,进行图像处理使用的是灰度图(YUV、YCrCb),显示的时候一般采用RGB格式的图像。

转载地址:http://punws.baihongyu.com/

你可能感兴趣的文章
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>
克罗谈投资策略04_感觉与现实
查看>>
通向财务自由之路01_导读
查看>>
通向财务自由之路02_成功的决定因素:你
查看>>
中低频量化交易策略研发01_引言
查看>>
中低频量化交易策略研发06_推进的择时策略
查看>>
史丹·温斯坦称傲牛熊市的秘密
查看>>
期货市场技术分析01_理论基础
查看>>
期货市场技术分析02_趋势的基本概念
查看>>
期货市场技术分析03_主要反转形态
查看>>
期货市场技术分析04_持续形态
查看>>
期货市场技术分析05_交易量和持仓兴趣
查看>>
TB交易开拓者入门教程
查看>>
TB创建公式应用dll失败 请检查用户权限,终极解决方案
查看>>
python绘制k线图(蜡烛图)报错 No module named 'matplotlib.finance
查看>>
talib均线大全
查看>>
期货市场技术分析06_长期图表和商品指数
查看>>
期货市场技术分析07_摆动指数和相反意见理论
查看>>