知道RGB 那YUV、YPbPr、YCbCr又是什麼?

  • 2019 年 12 月 28 日
  • 資訊

本文轉載自超能網,其他媒體轉載需經超能網同意。

說到用來表達顏色的系統,大家或許第一個會想到的就是RGB。是的,在數字時代,屏幕上每一個像素點都是由紅綠藍三種顏色混合而成的,它可以用RGB值來描述。不過有時我們還是會看到或聽聞所謂的YUV,那麼它又是什麼呢?

首先說說色彩模型(Color Model),你可以將其簡單理解為是色彩編碼方式,比如RGB就是其中常用的一種。每一種色彩模型都有自己對顏色的定義,我們看到的同一種顏色在不同的顏色模型中有着不一樣的“值”。YUV就是與RGB平行的一套色彩模型系統,它並不像RGB那樣使用基色混合的辦法來描述顏色,而是用了另外一套截然不同的描述辦法。

YUV模型首先將亮度這一人眼最為敏感的要素抽離了出來,形成一個只有亮度信息的平面,然後才是描述具體色彩的U和V平面,分別具有色度(Chrominance)和濃度(Chroma)信息。下圖就是一個比較好的例子:

知道RGB 那YUV、YPbPr、YCbCr又是什麼?
YUV三個通道的不同信息從上到下分別為Y、U、V圖片來自於Wikipedia

那麼為什麼有了RGB我們仍然需要YUV呢?我們要回到人類剛擁有彩色電視的時候,在那段從黑白電視向彩色電視的過渡期,電視系統需要提供對黑白電視的兼容性,另外還要考慮到電視廣播系統那有限的帶寬,如果使用RGB顏色模型,那麼傳輸帶寬就是原來的三倍。主要是以上兩個原因,能夠兼容黑白電視系統和更為節省帶寬的YUV色彩模型就被發明了出來,它與RGB之間是無損轉換的。

亮度信息與色彩信息相分離的設計使得YUV可以減少一些色彩信息以達到節省傳輸帶寬和保存體積的目的。因為相較於色彩,人眼對於亮度信息更為敏感,所以可以在色彩信息上面進行取捨來達到節約大小的目的,通過引入採樣的方式,YUV對原始的RGB信息進行重編碼,目前在視頻中最常見的就是YUV420式編碼,Y平面的信息完全保留,而UV這兩個色度平面的信息交錯保留,並且精度只有Y平面的一半,最終圖像、視頻的體積也就少了很多,而畫質損失實際是被控制在一個合理的範圍內。

知道RGB 那YUV、YPbPr、YCbCr又是什麼?

YUV下還有很多不同的具體編碼方式,比如視頻中常見的NV12、YV12等,而JPEG這個常見的圖片壓縮編碼也使用了YUV作為處理和存儲圖像時使用的色彩模型,可以說,我們雖然沒有直接接觸到YUV色彩模型,但是幾乎是時時刻刻都在用它。而YPbPr、YCbCr只是YUV在不同領域中的具現化罷了,其實就是一個東西。

知道RGB 那YUV、YPbPr、YCbCr又是什麼?