詳解 YUV 格式(I420/YUV420/NV12/NV12/YUV422)

詳解 YUV 格式(I420/YUV420/NV12/NV12/YUV422)

YUVY'CbCr)是一種像素格式,常見于視頻編碼與靜態(tài)圖像勺鸦。與 RGB 格式(紅-綠-藍(lán))相反荚孵,YUV 分別由一個稱為 Y(相當(dāng)于灰度)的“亮度”分量(Luminance or Luma)和兩個稱為 U(藍(lán)色投影 Cb)和 V(紅色投影 Cr)的“色度”分量(Chrominance or Chroma)表示爷辙,由此得名左权。

僅有 Y 分量而沒有 UV 分量信息拘领,一樣可以顯示完整的黑白(灰度)圖像藕帜,解決了模擬信號電視黑白與彩色的兼容問題烫罩。

采樣

色度通道(UV)的采樣率可以低于亮度通道(Y),而不會顯著降低感知質(zhì)量耘戚。一種稱為 “A:B:C” 的表示法用于描述相對于 Y 采樣嗡髓, U 和 V 的頻率:

  • 4:4:4 表示不降低色度(UV)通道的采樣率。每個 Y 分量對應(yīng)一組 UV 分量收津。
  • 4:2:2 表示 2:1 水平下采樣饿这,沒有垂直下采樣。每兩個 Y 分量共享一組 UV 分量撞秋。
  • 4:2:0 表示 2:1 水平下采樣长捧,同時 2:1 垂直下采樣。每四個 Y 分量共享一組 UV 分量吻贿。
  • 4:1:1 表示 4:1 水平下采樣串结,沒有垂直下采樣。每四個 Y 分量共享一組 UV 分量舅列。4:1:1 采樣比其他格式少見肌割,本文不再詳細(xì)討論。

下圖顯示了如何針對每個下采樣率采樣色度帐要。亮度樣本用十字表示把敞,色度樣本用圓圈表示。

YUV Sampling

存儲格式

YUV 在存儲上通常分為平面格式(Planar)榨惠,半平面格式(Semi-Planar)以及打包格式(Packed)奋早。

Planar 平面格式

平面格式有時也稱為三面格式(Triplanar),即 Y, U, V 三個分量各自使用單獨(dú)的數(shù)組保存赠橙,這種三平面分離的格式比較方便視頻編碼耽装。

YU12 (I420)

  • 4:2:0 Formats, 12 Bits per Pixel, 3 Planars

FOURCC I420

YU12I420,也叫 IYUV期揪,屬于 YUV420P 格式掉奄。三個平面,分別存儲 Y U V 分量横侦。每四個 Y 分量共享一組 UV 分量挥萌。U绰姻、V 平面的 strides, width 和 height 都是 Y 平面的一半,因此一個像素 12 bits引瀑,內(nèi)存排列如下圖所示:

YU12 Format

從圖中可看出狂芋,U、V 平面的每行字節(jié)數(shù)(strides)憨栽、高(height)都是 Y 平面的一半帜矾。

I420 是音視頻開發(fā)中常用的一種格式。

YV12

  • 4:2:0 Formats, 12 Bits per Pixel, 3 Planars

FOURCC YV12

YV12I420 幾乎一樣屑柔,僅改變了 U, V 平面的順序屡萤。內(nèi)存排列如下圖所示:

YU12 Format

J420

  • 4:2:0 Formats, 12 Bits per Pixel, 3 Planars

J420I420 完全相同,但具有完整范圍(0-255掸宛,full range)的亮度(Y)分量死陆,而不是有限范圍(16-240,limited range唧瘾,在 iOS 上也叫做 video range)措译。色度(UV)分量與 I420 中的完全相同。

IMC1

  • 4:2:0 Formats, 16 Bits per Pixel, 3 Planars

FOURCC IMC1

IMC1I420 類似饰序,U, V 平面的寬(width)领虹、高(height)是 Y 平面的一半,但是每行字節(jié)數(shù)(strides)與 Y 平面一致求豫,因此 U, V 平面在內(nèi)存上會有留空(padding)塌衰,因此一個像素 16 bits,如圖所示:

IMC1 Format

IMC3

  • 4:2:0 Formats, 16 Bits per Pixel, 3 Planars

IMC3IMC1 幾乎一樣蝠嘉,僅改變了 U, V 平面的順序最疆。內(nèi)存排列如下圖所示:

IMC3 Format

I422

  • 4:2:2 Formats, 16 Bits per Pixel, 3 Planars

I422 屬于 YUV422P 格式。三個平面蚤告,分別存儲 Y U V 分量肚菠。每兩個 Y 分量共享一組 UV 分量。U罩缴、V 平面的 strides, width 是 Y 平面的一半,但 height 與 Y 平面一致层扶,因此一個像素 16 bits箫章,內(nèi)存排列如下圖所示:

YUV422P

從圖中可看出,U镜会、V 平面的每行字節(jié)數(shù)(strides)是 Y 平面的一半檬寂,高(height)與 Y 平面一致。

J422

  • 4:2:2 Formats, 16 Bits per Pixel, 3 Planars

J422I422 完全相同戳表,但具有完整范圍(0-255桶至,full range)的亮度(Y)分量昼伴,而不是有限范圍(16-240,limited range镣屹,在 iOS 上也叫做 video range)圃郊。色度(UV)分量與 I420 中的完全相同。

Semi-Planar 半平面格式

半平面格式具有兩個平面而不是三個平面女蜈,一個平面存儲亮度(Y)分量持舆,另一個平面存儲兩個色度(UV)分量。有時也將它們稱為雙平面格式(BiPlanar)伪窖。

NV12

  • 4:2:0 Formats, 12 Bits per Pixel, 2 Planars

FOURCC NV12

NV12 屬于 YUV420SP 格式逸寓。兩個平面,分別存儲 Y 分量 和 UV 分量覆山。其中 UV 分量共用一個平面并且以 U, V, U, V 的順序交錯排列竹伸。每四個 Y 分量共享一組 UV 分量。

UV 平面的 strides, width 與 Y 平面一樣長簇宽,但 height 僅為 Y 平面的一半勋篓。因此一個像素 12 bits,內(nèi)存排列如下圖所示:

NV12 Format

從圖中可看出晦毙,UV 平面的每行字節(jié)數(shù)(strides)與 Y 平面一致生巡,高(height)是 Y 平面的一半。

NV12 是 iOS 相機(jī)(AVCaptureOutput)可直接輸出的兩種視頻幀格式之一见妒,另外一種是 BGRA32(kCVPixelFormatType_32BGRA)孤荣。

在 iOS 上,NV12 還分為 Full Range (0-255, kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) 和 Video Range (16-240, kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange)须揣,區(qū)別僅為亮度(Y)分量的取值范圍盐股,一般而言,F(xiàn)ull Range 適用于靜態(tài)圖像(拍照)耻卡,Video Range 適用于視頻采集(攝像)疯汁。

NV21

  • 4:2:0 Formats, 12 Bits per Pixel, 2 Planars

FOURCC NV21

NV21 屬于 YUV420SP,與 NV12 幾乎一致卵酪,區(qū)別是 UV 平面中 U 與 V 的排列順序顛倒幌蚊,以 V, U, V, U 的順序交錯排列,內(nèi)存排列如圖所示:

NV21 Format

NV21 是 Android 相機(jī)(Camera)默認(rèn)的輸出格式溃卡。

Packed 打包格式

打包格式通常只有一個平面溢豆,所有亮度(Y)和色度(UV)數(shù)據(jù)都交織在一起。有點類似于 RGB 格式瘸羡,只是使用了不同的色彩空間漩仙。

打包格式在網(wǎng)絡(luò)攝像頭中較為常見。硬件設(shè)備使用多平面格式效率較低,因為每個像素需要多次內(nèi)存訪問队他。而打包格式由于僅一個平面卷仑,訪問內(nèi)存的開銷較小。

AYUV

  • 4:4:4 Formats, 32 Bits per Pixel

FOURCC AYUV

AYUV 是 Packed 打包格式麸折,其中每個像素編碼為四個連續(xù)字節(jié)锡凝,每個像素在內(nèi)存中按照 V, U, Y, A 的順序排列(A 指 alpha 通道),如下圖所示:

AYUV Format

YUYV (V422 / YUY2 / YUNV)

  • 4:2:2 Formats, 16 Bits per Pixel

FOURCC YUY2

YUYV 通常也稱作 V422磕谅、YUY2私爷、YUNV

YUY2 是 Packed 打包格式,其中兩個像素共用一組 UV 分量膊夹,內(nèi)存中按照 Y U Y V 的順序排列衬浑,如下圖所示:

YUYV Format

UYVY (Y422 / UYNV)

  • 4:2:2 Formats, 16 Bits per Pixel

FOURCC UYVY

UYVY 通常也稱作 Y422UYNV

UYVYYUYV 類似放刨,只是亮度(Y)分量與色度(UV)分量排列順序顛倒工秩,如下圖所示:

UYVY Format

參考資料

  1. Microsoft: Recommended 8-Bit YUV Formats for Video Rendering

  2. VideoLAN's Wiki: YUV

  3. FOURCC: YUV pixel formats

  4. WWDC2011: Capturing from the Camera using AV Foundation on iOS 5

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市进统,隨后出現(xiàn)的幾起案子助币,更是在濱河造成了極大的恐慌,老刑警劉巖螟碎,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眉菱,死亡現(xiàn)場離奇詭異,居然都是意外死亡掉分,警方通過查閱死者的電腦和手機(jī)俭缓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酥郭,“玉大人华坦,你說我怎么就攤上這事〔淮樱” “怎么了惜姐?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長椿息。 經(jīng)常有香客問我歹袁,道長,這世上最難降的妖魔是什么寝优? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任宇攻,我火速辦了婚禮,結(jié)果婚禮上倡勇,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好妻熊,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布夸浅。 她就那樣靜靜地躺著,像睡著了一般扔役。 火紅的嫁衣襯著肌膚如雪帆喇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天亿胸,我揣著相機(jī)與錄音坯钦,去河邊找鬼。 笑死侈玄,一個胖子當(dāng)著我的面吹牛婉刀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播序仙,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼突颊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了潘悼?” 一聲冷哼從身側(cè)響起律秃,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎治唤,沒想到半個月后棒动,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宾添,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年船惨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辞槐。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡掷漱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出榄檬,到底是詐尸還是另有隱情卜范,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布鹿榜,位于F島的核電站海雪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏舱殿。R本人自食惡果不足惜奥裸,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沪袭。 院中可真熱鬧湾宙,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至伟恶,卻和暖如春碴开,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背博秫。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工潦牛, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挡育。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓巴碗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親静盅。 傳聞我的和親對象是個殘疾皇子良价,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 目錄 一、 YUV起源 二蒿叠、 YUV的類型 三明垢、 YUV的采樣和存儲格式 四、 YUV的相關(guān)Enum 五市咽、 YUV...
    我心若氺閱讀 26,449評論 4 41
  • 導(dǎo)語 今天跟大家分享的這篇文章痊银,也是之前自己總結(jié)的,大致就是想說明一下施绎,視頻的裸數(shù)據(jù)yuv格式的各種分類溯革。剛開始接...
    bigonelby閱讀 9,057評論 0 12
  • 目錄 YUV的原理 YUV的取值范圍 YUV的存儲格式 YUV的采樣格式 存儲方式 10bit YUV數(shù)據(jù)的存儲 ...
    smallest_one閱讀 6,923評論 1 8
  • 轉(zhuǎn)自:http://www.cnblogs.com/azraelly/archive/2013/01/01/284...
    rickytang0閱讀 859評論 0 1
  • 前言 系列文章:《iOS視頻開發(fā)(一):視頻采集》《iOS視頻開發(fā)(二):視頻H264硬編碼》《iOS視頻開發(fā)(三...
    GenoChen閱讀 7,834評論 6 21