原文地址: https://www.cnblogs.com/lidabo/p/3141454.html
概述
YUV(亦稱YCrCb)是被歐洲電視系統(tǒng)所采用的一種顏色編碼方法(屬于PAL)涎显,是PAL和SECAM模擬彩色電視制式采用的顏色空間。其中的Y,U,V幾個(gè)字母不是英文單詞的組合詞破喻,Y代表亮度,uv代表色差校焦,u和v是構(gòu)成彩色的兩個(gè)分量俏脊。在現(xiàn)代彩色電視系統(tǒng)中茸俭,通常采用三管彩色攝影機(jī)或彩色CCD攝影機(jī)進(jìn)行取像吊履,然后把取得的彩色圖像信號(hào)經(jīng)分色、分別放大校正后得到RGB调鬓,再經(jīng)過(guò)矩陣變換電路得到亮度信號(hào)Y和兩個(gè)色差信號(hào)R-Y(即U)艇炎、B-Y(即V),最后發(fā)送端將亮度和色差三個(gè)信號(hào)分別進(jìn)行編碼腾窝,用同一信道發(fā)送出去缀踪。這種色彩的表示方法就是所謂的YUV色彩空間表示。采用YUV色彩空間的重要性是它的亮度信號(hào)Y和色度信號(hào)U虹脯、V是分離的驴娃。如果只有 Y信號(hào)分量而沒(méi)有U、V信號(hào)分量归形,那么這樣表示的圖像就是黑白灰度圖像。彩色電視采用YUV空間正是為了用亮度信號(hào)Y解決彩色電視機(jī)與黑白電視機(jī)的相容問(wèn)題鼻由,使黑白電視機(jī)也能接收彩色電視信號(hào)暇榴。
優(yōu)點(diǎn)作用
YUV主要用于優(yōu)化彩色視頻信號(hào)的傳輸厚棵,使其向后相容老式黑白電視。與RGB視頻信號(hào)傳輸相比蔼紧,它最大的優(yōu)點(diǎn)在于只需占用極少的頻寬(RGB要求三個(gè)獨(dú)立的視頻信號(hào)同時(shí)傳輸)婆硬。其中“Y”表示明亮度(Luminance或Luma),也就是灰階值奸例;而“U”和“V” 表示的則是色度(Chrominance或Chroma)彬犯,作用是描述影像色彩及飽和度,用于指定像素的顏色查吊⌒城“亮度”是透過(guò)RGB輸入信號(hào)來(lái)建立的,方法是將RGB信號(hào)的特定部分疊加到一起逻卖∷瘟校“色度”則定義了顏色的兩個(gè)方面─色調(diào)與飽和度,分別用Cr和CB來(lái)表示评也。其中炼杖,Cr反映了GB輸入信號(hào)紅色部分與RGB信號(hào)亮度值之間的差異。而CB反映的是RGB輸入信號(hào)藍(lán)色部分與RGB信號(hào)亮度值之同的差異盗迟。
采用YUV色彩空間的重要性是它的亮度信號(hào)Y和色度信號(hào)U坤邪、V是分離的。如果只有Y信號(hào)分量而沒(méi)有U罚缕、V分量艇纺,那么這樣表示的圖像就是黑白灰度圖像。彩色電視采用YUV空間正是為了用亮度信號(hào)Y解決彩色電視機(jī)與黑白電視機(jī)的兼容問(wèn)題怕磨,使黑白電視機(jī)也能接收彩色電視信號(hào)喂饥。
YUV與RGB相互轉(zhuǎn)換的公式如下(RGB取值范圍均為0-255)︰
Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
在DirectShow中,常見(jiàn)的RGB格式有RGB1肠鲫、RGB4员帮、RGB8、RGB565导饲、RGB555捞高、RGB24、RGB32渣锦、ARGB32等硝岗;常見(jiàn)的YUV格式有YUY2、YUYV袋毙、YVYU型檀、UYVY、AYUV听盖、Y41P胀溺、Y411裂七、Y211、IF09仓坞、IYUV背零、YV12、YVU9无埃、YUV411徙瓶、YUV420等。
主要的采樣格式有YCbCr 4:2:0嫉称、YCbCr 4:2:2侦镇、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr 4:1:1 比較常用澎埠,其含義為:每個(gè)點(diǎn)保存一個(gè) 8bit 的亮度值(也就是Y值)虽缕,每 2x2 個(gè)點(diǎn)保存一個(gè) Cr 和Cb 值, 圖像在肉眼中的感覺(jué)不會(huì)起太大的變化。所以蒲稳, 原來(lái)用 RGB(R氮趋,G,B 都是 8bit unsigned) 模型江耀, 4 個(gè)點(diǎn)需要 8x3=24 bites(如下圖第一個(gè)圖)剩胁。而現(xiàn)在僅需要 8+(8/4)+(8/4)=12bites, 平均每個(gè)點(diǎn)占12bites(如下圖第二個(gè)圖)。這樣就把圖像的數(shù)據(jù)壓縮了一半祥国。
上邊僅給出了理論上的示例昵观,在實(shí)際數(shù)據(jù)存儲(chǔ)中是有可能是不同的,下面給出幾種具體的存儲(chǔ)形式:
(1) YUV 4:4:4
YUV三個(gè)信道的抽樣率相同舌稀,因此在生成的圖像里啊犬,每個(gè)象素的三個(gè)分量信息完整(每個(gè)分量通常8比特),經(jīng)過(guò)8比特量化之后壁查,未經(jīng)壓縮的每個(gè)像素占用3個(gè)字節(jié)觉至。
下面的四個(gè)像素為: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的碼流為: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
(2) YUV 4:2:2
每個(gè)色差信道的抽樣率是亮度信道的一半,所以水平方向的色度抽樣率只是4:4:4的一半睡腿。對(duì)非壓縮的8比特量化的圖像來(lái)說(shuō)语御,每個(gè)由兩個(gè)水平方向相鄰的像素組成的宏像素需要占用4字節(jié)內(nèi)存。
下面的四個(gè)像素為:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的碼流為:Y0 U0 Y1 V1 Y2 U2 Y3 V3
映射出像素點(diǎn)為:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]
(3) YUV 4:1:1
4:1:1的色度抽樣席怪,是在水平方向上對(duì)色度進(jìn)行4:1抽樣应闯。對(duì)于低端用戶和消費(fèi)類產(chǎn)品這仍然是可以接受的。對(duì)非壓縮的8比特量化的視頻來(lái)說(shuō)挂捻,每個(gè)由4個(gè)水平方向相鄰的像素組成的宏像素需要占用6字節(jié)內(nèi)存碉纺。
下面的四個(gè)像素為: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的碼流為: Y0 U0 Y1 Y2 V2 Y3
映射出像素點(diǎn)為:[Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2]
(4)YUV4:2:0
4:2:0并不意味著只有Y,Cb而沒(méi)有Cr分量。它指得是對(duì)每行掃描線來(lái)說(shuō)骨田,只有一種色度分量以2:1的抽樣率存儲(chǔ)唬涧。相鄰的掃描行存儲(chǔ)不同的色度分量,也就是說(shuō)盛撑,如果一行是4:2:0的話,下一行就是4:0:2捧搞,再下一行是4:2:0...以此類推抵卫。對(duì)每個(gè)色度分量來(lái)說(shuō),水平方向和豎直方向的抽樣率都是2:1胎撇,所以可以說(shuō)色度的抽樣率是4:1介粘。對(duì)非壓縮的8比特量化的視頻來(lái)說(shuō),每個(gè)由2x2個(gè)2行2列相鄰的像素組成的宏像素需要占用6字節(jié)內(nèi)存晚树。
下面八個(gè)像素為:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
[Y5 U5 V5] [Y6 U6 V6] [Y7U7 V7] [Y8 U8 V8]
存放的碼流為:Y0 U0 Y1 Y2 U2 Y3
Y5 V5 Y6 Y7 V7 Y8
映射出的像素點(diǎn)為:[Y0 U0 V5] [Y1 U0 V5] [Y2 U2 V7] [Y3 U2 V7]
[Y5 U0 V5] [Y6 U0 V5] [Y7U2 V7] [Y8 U2 V7]
YUV格式通常有兩大類:打包(packed)格式和平面(planar)格式姻采。前者將YUV分量存放在同一個(gè)數(shù)組中,通常是幾個(gè)相鄰的像素組成一個(gè)宏像素(macro-pixel)爵憎;而后者使用三個(gè)數(shù)組分開(kāi)存放YUV三個(gè)分量慨亲,就像是一個(gè)三維平面一樣。表2.3中的YUY2到Y(jié)211都是打包格式宝鼓,而IF09到Y(jié)VU9都是平面格式刑棵。(注意:在介紹各種具體格式時(shí),YUV各分量都會(huì)帶有下標(biāo)愚铡,如Y0蛉签、U0、V0表示第一個(gè)像素的YUV分量沥寥,Y1碍舍、U1、V1表示第二個(gè)像素的YUV分量邑雅,以此類推片橡。)
¨ YUY2(和YUYV)格式為每個(gè)像素保留Y分量,而UV分量在水平方向上每?jī)蓚€(gè)像素采樣一次蒂阱。一個(gè)宏像素為4個(gè)字節(jié)锻全,實(shí)際表示2個(gè)像素。(4:2:2的意思為一個(gè)宏像素中有4個(gè)Y分量录煤、2個(gè)U分量和2個(gè)V分量鳄厌。)圖像數(shù)據(jù)中YUV分量排列順序如下:
Y0 U0 Y1 V0 Y2 U2 Y3 V2 …
¨ YVYU格式跟YUY2類似,只是圖像數(shù)據(jù)中YUV分量的排列順序有所不同:
Y0 V0 Y1 U0 Y2 V2 Y3 U2 …
¨ UYVY格式跟YUY2類似妈踊,只是圖像數(shù)據(jù)中YUV分量的排列順序有所不同:
U0 Y0 V0 Y1 U2 Y2 V2 Y3 …
¨ AYUV格式帶有一個(gè)Alpha通道了嚎,并且為每個(gè)像素都提取YUV分量,圖像數(shù)據(jù)格式如下:
A0 Y0 U0 V0 A1 Y1 U1 V1 …
¨ Y41P(和Y411)格式為每個(gè)像素保留Y分量,而UV分量在水平方向上每4個(gè)像素采樣一次歪泳。一個(gè)宏像素為12個(gè)字節(jié)萝勤,實(shí)際表示8個(gè)像素。圖像數(shù)據(jù)中YUV分量排列順序如下:
U0 Y0 V0 Y1 U4 Y2 V4 Y3 Y4 Y5 Y6 Y8 …
¨ Y211格式在水平方向上Y分量每2個(gè)像素采樣一次呐伞,而UV分量每4個(gè)像素采樣一次敌卓。一個(gè)宏像素為4個(gè)字節(jié),實(shí)際表示4個(gè)像素伶氢。圖像數(shù)據(jù)中YUV分量排列順序如下:
Y0 U0 Y2 V0 Y4 U4 Y6 V4 …
¨ YVU9格式為每個(gè)像素都提取Y分量趟径,而在UV分量的提取時(shí),首先將圖像分成若干個(gè)4 x 4的宏塊癣防,然后每個(gè)宏塊提取一個(gè)U分量和一個(gè)V分量蜗巧。圖像數(shù)據(jù)存儲(chǔ)時(shí),首先是整幅圖像的Y分量數(shù)組蕾盯,然后就跟著U分量數(shù)組幕屹,以及V分量數(shù)組。IF09格式與YVU9類似级遭。
¨ IYUV格式為每個(gè)像素都提取Y分量望拖,而在UV分量的提取時(shí),首先將圖像分成若干個(gè)2 x 2的宏塊挫鸽,然后每個(gè)宏塊提取一個(gè)U分量和一個(gè)V分量靠娱。YV12格式與IYUV類似。
¨ YUV411掠兄、YUV420格式多見(jiàn)于DV數(shù)據(jù)中像云,前者用于NTSC制,后者用于PAL制蚂夕。YUV411為每個(gè)像素都提取Y分量迅诬,而UV分量在水平方向上每4個(gè)像素采樣一次。YUV420并非V分量采樣為0婿牍,而是跟YUV411相比侈贷,在水平方向上提高一倍色差采樣頻率,在垂直方向上以U/V間隔的方式減小一半色差采樣等脂,如上圖所示俏蛮。
轉(zhuǎn)載:http://hi.baidu.com/yrworld/blog/item/e6e0a9120a6ca3cbc2fd78e2.html/cmtid/21fa09d8d7a32a3b32fa1cf8