爲什麼YUV全爲0的圖像是綠色的

Q: 爲什麼YUV 全爲0 的圖像是綠色的

A: 圖像中常見的顏色編碼有兩種方式。

    1. YUV - 灰度(亮度) + 色差分量

    2. RGB - 紅綠藍 三色分量

 

通常電視, 視頻等都採用yuv編碼方式, 由於人類對灰度/亮度比較敏感,  而對色差分量不是很敏感。

所以通過yuv編碼方式,  可以減少U, V 也即Cb, Cr分量的數量。

故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等網站。(後續補充詳細)

比如

https://www.fourcc.org/

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

http://liuyang1.github.io/2015/12/29/yuv/

 


關於YUV全0的圖像是綠色圖像的原因?

需要提下yuv和rgb之間的轉換公式。

根據協議/規範不同, 有挺多種轉換公式。

可參考

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帶入公式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

查看顏色表...

 

嗯, 是一種深綠色, 和電視和視頻種經常會遇到的那種綠色一樣!!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章