要瞭解YUV422,先來看一下YUV444
YUV 4:4:4
YUV三個通道的抽樣率相同,因此在產生的映像裡,每個象素的三個分量資訊完整,也就是每個像素點由三個元素表示(每個分量通常8位元),經過8位元量化之後,未經壓縮的每個像素佔用3個位元組。
下面的四個像素為: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 共佔用12個位元組,只表示了4個像素點。只算第一行。
存放的碼流為: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3 (12位元組/4像素) 存放的碼流應該就是解碼晶片進入處理器的資料。如SAA7113解碼後進入的資料碼流是Cb Y Cr Y Cb Y Cr。
映射出像素點為: [Y0 U0 V0] [Y1 U0 V1] [Y2 U2 V2] [Y3 U2 V3] 。(這裡映射出的像素點是什麼意思)
(2) YUV 4:2:2
每個色差通道U和V水平方向的抽樣率是亮度通道Y的一半,所以水平方向的色度抽樣率只是4:4:4的一半。對非壓縮的8位元量化的映像來說,每個由兩個水平方向相鄰的像素組成的宏像素需要佔用4位元組記憶體。
下面的四個像素為:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的碼流為:Y0 U0 Y1 V1 Y2 U2 Y3 V3 (8位元組/4像素)
映射出像素點為:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]
首先,您應該理解下列概念,這樣才能理解接下來的內容:
• 表面原點。對於本文講述的 YUV 格式,原點 (0,0) 總是位於表面的左上方。
• 跨距。表面的跨距,有時也稱為間距,指的是表面的寬度,以位元組數表示。對於一個表面原點位於左上方的表面來說,跨距總是正數。
• 對齊。表面的對齊是根據圖形顯示驅動程式的不同而定的。表面始終應該 DWORD 對齊,就是說,表面中的各個行肯定都是從 32 位 (DWORD) 邊界開始的。對齊可以大於 32 位,但具體取決於硬體的需求。 • 打包格式與平面格式。 YUV 格式可以分為打包 格式和平面 格式。在打包格式中, Y 、 U 和 V 組件儲存在一個數組中。像素被組織到了一些巨像素組中,巨像素組的布局取決于格式。在平面格式中, Y 、 U 和 V 組件作為三個單獨的平面進行儲存。
4:2:2 格式,每像素 16 位
支援兩個 4:2:2 格式,FOURCC 碼如下:
• YUY2
• UYVY 兩個都是打包格式,其中每個巨像素都是編碼為四個連續位元組的兩個像素。這樣會使得色度水平下採樣乘以係數 2。
YUY2 在 YUY2 格式中,資料可被視為一個不帶加號或減號的 char 值組成的數組,其中第一個位元組包含第一個 Y 範例,第二個位元組包含第一個 U (Cb) 範例,第三個位元組包含第二個 Y 範例,第四個位元組包含第一個 V (Cr) 範例。
如果該映像被看作由兩個little-endian WORD 值組成的數組,則第一個 WORD在最低有效位 (LSB) 中包含 Y0,在最高有效位 (MSB) 中包含 U。第二個 WORD 在 LSB 中包含 Y1,在 MSB 中包含 V。 YUY2 是用於 Microsoft DirectX® Video Acceleration (DirectX VA) 的首選 4:2:2 像素格式。預期它會成為支援 4:2:2 視頻的 DirectX VA 加速器的中期要求。
UYVY 此格式與 YUY2 相同,只是位元組順序是與之相反的 — 就是說,色度位元組和燈光位元組是翻轉的(圖 7)。如果該映像被看作由兩個 little-endian WORD 值組成的數組,則第一個 WORD 在 LSB 中包含 U,在 MSB 中包含 Y0,第二個 WORD 在 LSB 中包含 V,在 MSB 中包含 Y1。