YUV及儲存形式

2021-06-21 15:03:29 字數 1403 閱讀 6982

yuv主要的取樣格式

主要的取樣格式有ycbcr 4:2:0、ycbcr 4:2:2、ycbcr 4:1:1和 ycbcr 4:4:4。其中ycbcr 4:1:1 比較常用,其含義為:每個點儲存乙個 8bit 的亮度值(也就是y值), 每 2x2 個點儲存乙個 cr 和cb 值, 影象在肉眼中的感覺不會起太大的變化。所以, 原來用 rgb(r,g,b 都是 8bit unsigned) 模型, 4 個點需要 8x3=24 bites(如下圖第乙個圖). 而現在僅需要 8+(8/4)+(8/4)=12bites, 平均每個點佔12bites(如下圖第二個圖)。這樣就把影象的資料壓縮了一半。

上邊僅給出了理論上的示例,在實際資料儲存中是有可能是不同的,下面給出幾種具體的儲存形式:

(1)yuv4:4:4

yuv三個通道的抽樣率相同,因此在生成的影象裡,每個象素的三個分量資訊完整(每個分量通常8位元),經過8位元量化之後,未經壓縮的每個畫素占用3個位元組。

下面的四個畫素為: [y0 u0 v0][y1 u1 v1] [y2 u2 v2][y3 u3 v3]

存放的碼流為: y0u0 v0 y1 u1 v1 y2u2 v2 y3 u3 v3

(2)   yuv 4:2:2

每個色差通道的抽樣率是亮度通道的一半,所以水平方向的色度抽樣率只是4:4:4的一半。對非壓縮的8位元量化的影象來說,每個由兩個水平方向相鄰的畫素組成的巨集畫素需要占用4位元組記憶體。

下面的四個畫素為: [y0 u0 v0][y1 u1 v1] [y2 u2 v2][y3 u3 v3]

存放的碼流為: y0u0 y1 v1 y2 u2 y3v3

對映出畫素點為:[y0u0 v1] [y1 u0 v1] [y2u2 v3] [y3 u2 v3]

(3)   yuv 4:1:1

下面的四個畫素為: [y0 u0 v0][y1 u1 v1] [y2 u2 v2][y3 u3 v3]

存放的碼流為: y0u0 y1 y2 v2 y3

對映出畫素點為:[y0u0 v2] [y1 u0 v2] [y2u0 v2] [y3 u0 v2]

(4)yuv4:2:0

下面八個畫素為:[y0u0 v0] [y1 u1 v1] [y2u2 v2] [y3 u3 v3]

[y5u5 v5] [y6 u6 v6] [y7u7v7] [y8 u8 v8]

存放的碼流為:y0u0 y1 y2 u2 y3

y5 v5 y6 y7v7 y8

對映出的畫素點為:[y0u0 v5] [y1 u0 v5] [y2u2 v7] [y3 u2 v7]

[y5u0 v5] [y6 u0 v5] [y7u2v7] [y8 u2 v7]

yuv儲存解析

在手機camera系統當中,常用的yuv儲存格式是yuv420,所以這裡只針對yuv420詳細記錄一下,後白有需要再寫一下其他儲存格式。yuv 4 2 0 並不意味著不取樣 v 分量。它指的是對每條掃瞄線來說,只有一種色度分量以 2 1 的取樣率儲存,相鄰的掃瞄行儲存不同的色度分量。也就是說,如果第...

mysql索引儲存形式 MySql索引儲存形式

聚簇索引 聚集索引 非聚簇索引 非聚集索引 是因為儲存引擎不同引起的,儲存引擎中innodb是聚簇索引 myisam是非聚簇索引,聚簇索引是資料與索引儲存在乙個起,非聚簇索引資料乙個檔案 索引乙個檔案,資料與索引不在乙個檔案中。mysql的索引以b tree的資料結構儲存在磁碟,預設儲存引擎為inn...

指標內部的儲存形式

1.在程式編譯時,會產生乙個變數名列表 即變數識別符號列表,物件導向程式設計中變數也叫物件包括 我們常說基本型別變數,自定義類型別變數,及它們的常量變數靜態變數等,甚至包括字面常量,函式甚至也可以稱之為變數 對於定義完的具體函式也會分配到自己的空間,有自己的型別,可以取其位址,所以函式也可以稱之為物...