摘要:先來個小測試,您看封面圖的數字是5 還是2?這個是色盲測試的題目。其原理 在于我們的眼中用來分辨顏色的錐狀細胞的差異,錐狀細胞通過對三原色的感知來識別萬色萬物,而機器中是怎么樣識別的呢? 我們這樣看著世界 人們都知道,把大象放進冰箱需要三步,而人眼把世界放進大腦也可簡單分為三步:眼 球感應到像(傳感器采集并轉換成數字信號)——轉成神經信號傳到大腦(通過通訊系統將信號傳到處理器)——大腦處理并存放(處理器轉化成屏幕可顯示與存儲的格式)。 所以,人眼開始看到的圖像格式由光信號轉化成了神經中的電信號與化學信號,傳播格 式已經不同了! 機器也是要轉換的。 1.1 大腦里的格式——RGB 圖像格式 首先,屏幕是由一個個像素點組成的,里面絢麗的色彩也就只是出自像素點上紅(Red)、綠(Green)、藍(Blue)三原色而已,這種色彩的表示方法稱為RGB 色彩空間表示(它也是多媒體計算機技術中用得最多的一種色彩空間表示方法),如下圖所示: 根據三基色原理,任意一種色光F 都可以用不同分量的R、G、B 三色相加混合而成。如 公式1 所示。 白光是多種光的混合,所以當三基色系數最大時為白色,零時為黑色,而介于兩者間的 就是世間百色了。 每個像素點就像一個顏料盒,盒子越大,裝的色彩種類越多,則這個像素點能表達的色 彩越豐富,而這個盒子的大小在電腦里叫做存儲空間,調色的方式則是改變三原色含量,下面的表越往下,所需要的存儲空間越大,但每個像素點能描述的顏色越準確,屏幕的畫面也就越逼真。 RGB 常見的格式如表1 所示,不用詳細看,留著以后查就好。 1.2 眼球上的格式——YUV 圖像格式 與RGB 視頻信號傳輸相比,YUV 最大的優點在于只需占用極少的帶寬(RGB 要求三個獨 立的視頻信號同時傳輸),兩種格式對帶寬的占用量噸位差異如下圖一般,RGB 占用的帶寬要大得多。 所以我們存儲的時候為了節約空間(偷工解料?)、方便打包就用了亮度信號Y 和兩個 色差信號R-Y(紅色-亮度,即U)、B-Y(藍色-亮度,即V)分別進行編碼,然后發出去,到了顯示終端再轉換回RGB 格式,這種色彩的表示方法就是所謂的YUV 色彩空間表示。 這時候也許你會問“咦,G(綠色)哪去了”,其實兩種顏色加亮度也能通過算法大致表達出原本的顏色(果然偷工減料),所以就算是融合進R 和B 里了。 難道只為了省點帶寬所以我們就義無反顧選擇了YUV 格式嗎? 當然不是!好吧,雖然低帶寬也很重要。 采用YUV 色彩空間更重要在于它的亮度信號Y 和色度信號U、V 是分離的,這樣分開的 好處就是不但可以避免相互干擾,還可以降低色度的采樣率而不會對圖像質量影響太大。 如果U、V 為零,就沒有顏色,變成黑白電視了。當然,Y 也是一個重要參數,其實平時我們看一個顏色深淺是很不一樣的,而深淺取決于亮度Y,Y 的影響如下圖示。 下面只介紹一種YUV 格式,大家觸類旁通。 1) YUV 4:2:2 4 代表存放流碼中有4 個Y,2 表示存放流碼中有2 個U 色差值,第二個2 表示存放流 碼中有2 個V 色差值。 下面的四個像素為:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 存放的碼流為:Y0 U0 Y1 V1 Y2 U2 Y3 V3 映射出像素點為:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3] 上圖是YUV4:2:2 的采樣網絡,燈光樣例(Y)用叉表示,色度樣例(U、V)則用圈表示。每個點都有叉,而圈只有一半,所以這就是為什么上面的存放流碼四個Y 齊全,而U、V 只有一半。 1.3 RGB/YUV 格式轉換 由此可見,兩種兵器各有所長,YUV 長于處理和傳輸,RGB 長于表達,都愛不釋手怎么辦? 下附兩者鍛造秘籍! YUV(YCrCb)與RGB 的轉化關系,可用公式2 來描述。 公式2 YUV 與RGB 轉化關系 公式3 YUV 與RGB 簡化轉換 其中RGB取值范圍均為0-255。 |