为什么YUV全为0的图像是绿色的
Q: 為什么YUV 全為0 的圖像是綠色的
A: 圖像中常見的顏色編碼有兩種方式。
? ? 1. YUV - 灰度(亮度)?+ 色差分量
? ? 2. RGB - 紅綠藍(lán) 三色分量
?
通常電視, 視頻等都采用yuv編碼方式, 由于人類對(duì)灰度/亮度比較敏感,? 而對(duì)色差分量不是很敏感。
所以通過yuv編碼方式,? 可以減少U, V 也即Cb, Cr分量的數(shù)量。
故yuv編碼方式常見有 YUV 4:4:4, 4:2:2, 4:2:0, 4:1:1, 4:0:0
其中4:4:4 就是完全沒壓縮的。
4:0:0為完全沒有色差分量的, 即我們以前的黑白電視^^
其他都是壓縮了部分UV色差分量的。
具體格式可參考fourcc等網(wǎng)站。(后續(xù)補(bǔ)充詳細(xì))
比如
https://www.fourcc.org/
https://www.jianshu.com/p/6a361e86ccd5
http://liuyang1.github.io/2015/12/29/yuv/
?
關(guān)于YUV全0的圖像是綠色圖像的原因?
需要提下yuv和rgb之間的轉(zhuǎn)換公式。
根據(jù)協(xié)議/規(guī)范不同, 有挺多種轉(zhuǎn)換公式。
可參考
https://www.fourcc.org/fccyvrgb.php
?
我取其中一種試試看...
YUV和RGB的轉(zhuǎn)換:Y = 0.299 R + 0.587 G + 0.114 BU = -0.1687 R - 0.3313 G + 0.5 B + 128V = 0.5 R - 0.4187 G - 0.0813 B + 128R = Y + 1.402 (V-128)G= Y - 0.34414 (U-128) - 0.71414 (V-128)B= Y + 1.772 (U-128)將YUV全0帶入公式2,
得出
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
?
ok, 差不多就是R = -126, G?= 135, B?= -126
其中RGB有取值范圍, 都是[0, 255]
所以最后就是R=0, G=135, B=0
查看顏色表...
?
嗯, 是一種深綠色, 和電視和視頻種經(jīng)常會(huì)遇到的那種綠色一樣!!
?
?
總結(jié)
以上是生活随笔為你收集整理的为什么YUV全为0的图像是绿色的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring cloud 实现服务不间断
- 下一篇: 月光满地