网上说当YUV分量全部为零的时候,显示为绿色,从这个公式里怎么推测出来只有绿色分量呢?

来源:9-5 什么是YUV

weixin_慕UI7314011

2021-06-13

写回答

2回答

慕妹3585395

2024-04-04

1. YUV转RGB有很多版本,其中一个版本是ITU-R BT.601标准,也就是标清电视(SDTV)系统的转换公式为:

R = 1.164383 * (Y - 16) + 1.596027 * (V - 128) 

G = 1.164383 * (Y - 16) - 0.391762 * (U - 128) - 0.812968 * (V - 128) 

B = 1.164383 * (Y - 16) + 2.017232 * (U - 128)

把Y = U = V = 0 带入:

R = 1.164383 * (-16) + 1.596027 * (-128) ≈ -139.2 + -199.6 = -338.8 ≈ 0 (由于RGB值理论上应介于[0,255]之间,超出范围的值会被裁剪到0) 

G = 1.164383 * (-16) - 0.391762 * (-128) - 0.812968 * (-128) ≈ -18.6 + 50.1 + 104.4 ≈ 135.9 ≈ 128 (由于实际应用中可能有饱和度限制,这里接近于128) 

B = 1.164383 * (-16) + 2.017232 * (-128) ≈ -18.6 - 258.1 ≈ -276.7 ≈ 0 (同样超出范围被裁剪到0)

确实结果是【R, G, B】=【0, 128, 0】, 应该是很深的一个绿色。


2. 视频教程中的YUV转RGB,YUV全为0的时候,【R,G,B】= 【0, 0, 0】, 应该是显示黑色吧。

R = Y + 1.13983 * V = 0

G = Y - 0.39465 * U - 0.58060 * V = 0 

B = Y + 2.03211 * U = 0

0
0

李超

2021-06-14

最终显示到屏幕上是RGB,YUV到RGB有换算公式,你可以自己算一下

0
1

音视频小白系统入门课 音视频基础+ffmpeg原理

掌握音视频采集、编解码、RTMP传输协议等核心基础

2214 学习 · 758 问题

查看课程