JPG-JPEG(JFIF)檔案解碼—YCbCr與RGB
阿新 • • 發佈:2019-02-04
YCbCr,是色彩空間的一種,通常會用於影片中的影像連續處理,或是數字攝影系統中。Y為顏色的亮度(luma)成分、而CB和CR則為藍色和紅色的濃度偏移量成份。Y就是所謂的流明(luminance),表示光的濃度且為非線性,使用伽馬修正(gamma correction)編碼處理。
Y'CbCr不是一種絕對的色彩空間,是一種針對RGB資訊所做的編碼。真正的顏色顯示是根據實際RGB色盤(colorant)來決定的。因此Y'CbCr所表示的值只有在標準RGB色盤或是ICC資料(ICC profile)有提供的時候才能計算。
YCbCr不是一種絕對色彩空間,是YUV壓縮和偏移的版本。YCbCr的Y與YUV中的Y含義一致,Cb和Cr與UV同樣都指色彩,Cb指藍色色度,Cr指紅色色度,在應用上很廣泛,JPEG、MPEG、DVD、攝影機
以下是轉化時用到的常量:
Cred = 0.299
Cgreen = 0.587
Cblue = 0.114
一、YCbCr 轉 RGB
R = Cr * (2 - 2*Cred) + Y + 128
B = Cb * (2 - 2*Cblue)+ Y + 128
G = (Y - B * Cblue - R * Cred) / Cgreen
快速轉換:
R = Y + 1.14 * Cr + 128
B = Y + 2.032 * Cb + 128
G = Y - 0.395 * Cb - 0.581 * C人 + 128