解码失败会显示绿屏,及yuv和rgb简单理解

音视频图片相关基础:

1:rgb 红绿蓝 光的三原色

在RGB中,一幅图像有三个独立的图像平面或通道组成:红,绿,蓝(以及第四个通道透明度)。
	 RGB(255,23,140)是光的三原色,也即红绿蓝Red、Green、Blue,它们的最大值是255,相当于100%。
		 白色:rgb(255,255,255)
		 黑色:rgb(0,0,0)
		 红色:rgb(255,0,0)
		 绿色:rgb(0,255,0)
		 蓝色:rgb(0,0,255)
		 青色:rgb(0,255,255)
		 紫色:rgb(255,0,255)
	调整相关数字,便可以得到深浅不一的各种颜色

2:YUV (Y’CbCr) 一种像素格式,多用于视频编码/静态图像

			Y(相当于灰度)的"亮度"分量						===>表示亮度
			U(蓝色投影 Cb)和 V(红色投影 Cr)的"色度"分量   ===》表示颜色   ==》色度
		如果只有Y分量而没有UV分量,就是黑白(灰度)图像,兼容了彩色和黑白电视。
		注意:人眼对色度没有那么敏感。

3:YUV 存储方式: 平面格式, 半平面格式, 打包格式

平面格式(planar): 先存储所有的y分量,再存储所有的Cb分量,最后存储所有的Cr分量.
打包格式(packed): Y,Cb,Cr一起存储, ==》这里涉及一些存储方式,以n个样点为准依次存储。
半平面格式(semi planar): 先存储所有的Y分量,后面Cb和Cr分量一起存储.

4: YUV 种类:

空间间不同空间,即描述一个像素的bit数不同,比如yuv444,yuv422,yuv411,yuv420
​ ==》主要从空间上理解,
​ 如yuv444 表示y u v的个数都是4,
​ 如yuv422,表示y u v的个数是4,2,2 (人眼对色度的不敏感,u和v交错去取)
空间内相同空间,即描述一个像素的bit数相同,但是存储方式不同
​ ==》主要从固定像素上去理解:
​ 比如对于yuv420而言,又可细分为yuv420p(yu16/yv16),yuv420sp,nv21,nv12,yv12,yu12,I420

5: 对yuv空间内存储的理解:

	其实nv系列,都属于semi-plane系列
			这里nv12表示正常的顺序,即uv plane,先是u,然后是v
			而nv21表示相反的顺序,即uv plane,先是v,然后是u
		同样,nv16和nv61的区别也是仅仅是uv的次序而已。
	这里的12和16又代表什么呢?实际上代表的是一个像素所占的位数!
		以nv12为例,表示一个像素占用12bit,其中y是定死的占8bit,也就是u占2bit,v占2bit,实际上就是yuv420格式,具体而言是yuv420sp格式
		nv16,则表示一个像素占用16bit,其中y是定死的8bit,也即是u占4bit,v占4bit,实际上就是yuv422格式,具体而言是yuv422sp格式

6:为什么视频出问题(解码失败)的时候会显示绿屏?

注意: 在YUV全为0时,图像是绿色的。
图像中不同的颜色编码
1:YUV —》灰度(亮度)+色差分量
2:RGB —》RGB 三色分量

在YUV全0的时候,图片显示绿色

理解: 参考:https://www.fourcc.org/fccyvrgb.php
YUV和RGB的转换:
	Y = 0.299 R + 0.587 G + 0.114 B
	U = -0.1687 R - 0.3313 G + 0.5 B + 128
	V = 0.5 R - 0.4187 G - 0.0813 B + 128
					
	R = Y + 1.402 (V-128)
	G= Y - 0.34414 (U-128) - 0.71414 (V-128)
	B= Y + 1.772 (U-128)

将YUV的值全0带入公式中,可以得到:

	R = 1.402 * (-128) = -126.598
	G = -0.34414(-128) - 0.71414(-128) = 44.04992 + 91.40992 = 135.45984
	B = 1.772 * (-128) = -126.228

差不多就是R = -126, G = 135, B = -126
其中RGB有取值范围, 都是[0, 255]
所以最后就是R=0, G=135, B=0
查看颜色表:rgb(0,135,0) 差不多就是绿色

参考:https://blog.csdn.net/nwpu053883/article/details/103733537

​ https://www.jianshu.com/p/6a361e86ccd5

Guess you like

Origin blog.csdn.net/yun6853992/article/details/120503536
Recommended