音视频编解码---YUV BMP RBG大端方式存储/小端方式读取 转换公式(线性量化)

本文详细介绍了RGB和YUV的概念,包括RGB的三种格式和YUV的色彩空间。重点讨论了YUV420P的分类以及YUV与RGB之间的转换关系,提供了线性量化的转换公式,并探讨了数据存储的小端和大端方式。此外,还提及了如何将YUV420P转换为灰度图以及YUYV转RGB24的过程。
摘要由CSDN通过智能技术生成
RGB和YUV概念

RGB方式:(必定是Packet形式存放数据)
  ①RGB565
  ②RGB888(真彩色)
  ③ARBG=RGB+A透明度
本质:只记录R、G、B三基色各自的亮度
优势:方便数字化表达,广泛用于数字化彩色显示器,计算机编程等领域。
劣势:和传统的灰度图兼容不好,表达颜色的效率不高

YUV格式

YUV即YCbCr(色彩空间)//源自2个标准,但几乎相同
  Y表示亮度,U和V表示色度。只有Y就是黑白图像,再加上UV就是彩色图像了。//VU=128
优势:让彩色系统和传统黑白系统很好的兼容。
  
  
YUV 格式:
  【YUV】①【默认】打包(packed)格式 [YUV]+[YUV]… 三分量同平面
  【YUVp】②平面(planar)格式。使用三个数组分开存放 三个分量分别处于三个平面
    ①P(planar)      [Y]+[U]+[V]
    在这里插入图片描述
    ②SP(Semi-Planar)  [Y]+[U+V]   //semi半独立式
    在这里插入图片描述

YUV分类:

1444  Y:U:V=4:4:4		完全取样
2422  Y:U:V=4:2:2		2:1的水平取样,垂直完全采样。
3420 	Y:U:V=4:1:1		2:1的水平取样,垂直21采样。	UV互相援引,即每一行4:2:04:0:2交替出现
4411	Y:U:V=4:1:1 	4:1的水平取样,垂直完全采样
YUV420P的4种分类:1、是否semir 2、UV先后顺序
YU12/I420: 	YYYYYYYY UU VV    =>YUV420P
YV12: 		YYYYYYYY VV UU    =>YUV420P
NV12: 		YYYYYYYY UVUV     =>YUV420SP
NV21: 		YYYYYYYY VUVU     =>YUV420SP
//P planer 表示数据存放再不同palner
//S semir  表示UV一起or独自存放
YUV422
YUYV/YUY2
YVYU
UYVY

V4L2文档翻译(十) 介绍了V4L2所支持的YUV格式枚举

2、YUV和RGB的关系及转换

相互转换:用数学方法互相换算,是个典型的浮点运算过程。

YUV转灰度图:UV=128
rgb->BMP(文件头+信息头+像素数据)
按照小端存储顺序RRGB=0x00bbggrr调整然后写入像素数据
2种像素格式的转换公式(线性量化与否)

视音频数据处理入门:RGB、YUV像素数据处理

RGB常用颜色:常用颜色RGB、灰度值
其中:  #808080 Gray 灰色 即R=G=B=128
根据换算公式:
  Y = 0.299R+0.587G+0.114B
  U = -0.169R-0.331G+0.5B+128
  V = 0.5R-0.419G-0.081B+128
  ↓↓↓
  由灰度图像R=G=B可知:Y=R=G=B, U=128, V=128.
  
故YUV420P去颜色(变成灰度图)//UV颜色→设置为128
memset(pic+wh,128,wh/2);//把后面部分的1/3像素’UV’数据转换成灰度色

3、YUV和RBG的转换

3.1 YUV和RGB的转换关系

未量化: Y/U/V ~(0-255)

1.小数形式,未量化

R = Y + 1.4075 * (V-128);  
G = Y - 0.3455 * (U-128) - 0.7169*(V-128);  
B = Y + 1.779 * (U-128);  

Y = 0.299*R + 0.587*G + 0.114*B;
U = (B-Y)/1.772;    
V = (R-Y)/1.402;       (U~(-128-127))
或写为:
Y =  0.299*R + 0.587*G + 0.114*B;
U = -0.169*R - 0.331*G + 0.5  *B ;
V =  0.5  *R - 0.419*G - 0.081*B;


2.整数形式(减少计算量)未量化
R= Y + ((360 * (V - 128))>>8) ; 
G= Y - (( ( 88 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值