All of YUV

開發(fā)中用途

在比如做移動(dòng)客戶端開發(fā)中(iOS,安卓),我們?cè)谥辈ブ幸獙⒈镜匾曨l推流到服務(wù)器好啰,如何將本地相機(jī)采集的數(shù)據(jù)表示出來轩娶,或者比如我們要對(duì)采集到視頻做旋轉(zhuǎn),裁剪框往,美顏等操作鳄抒,如何能高效的完成以上動(dòng)作,我們都不得不好好了解清楚圖像的結(jié)構(gòu)椰弊,以至于我們能用代碼的形式將它表示出來许溅。

What is YUV ?

  1. YUV是一種顏色編碼方式,主要用于電視系統(tǒng)以及模擬視頻領(lǐng)域秉版,它將亮度信息(Y)與色彩信息(UV)分離贤重,沒有UV信息一樣可以顯示完整的圖像,只不過是黑白的,這樣的設(shè)計(jì)很好地解決了彩色電視機(jī)與黑白電視兼容的問題。

  2. YUV不像傳統(tǒng)RGB那樣要求三個(gè)獨(dú)立的視頻信號(hào)同時(shí)傳輸雀彼,因此YUV方式傳輸視頻占用較少帶寬逗载。

概念區(qū)分

  • Y'UV, YUV, YCbCr, YPbPr, etc.

    這幾個(gè)詞乍一看十分相似.

    • 在過去,YUV 和 Y'UV被用作電視系統(tǒng)中顏色信息的特定模擬信息編碼。而YCbCr被用作顏色信息的數(shù)字編碼,通常適用于視頻和靜態(tài)圖像的壓縮和傳輸(MPEG, JPEG)。

    • 今天铐刘,YUV通常用被用在計(jì)算機(jī)行業(yè)描述使用YCbCr編碼的文件格式。

  • Y:表示明亮度(Luminance,Luma),也就是灰度值

  • U和V:色度(Chrominance,Chroma),描述影像色彩及飽和度影晓。

1. 采集方式(實(shí)心圓圈代表Y,空心圓圈代表UV)

  • YUV4:4:4 (每一個(gè)Y對(duì)應(yīng)一組UV分量)
YUV4:4:4
  • YUV4:2:2 (每兩個(gè)Y共用一組UV分量)
YUV4:2:2
  • YUV4:2:0 (每四個(gè)Y共用一組UV分量)
YUV4:2:0

2.存儲(chǔ)方式

了解了以上三幅圖的YUV采集方式后镰吵,我們來重點(diǎn)說一下YUV的數(shù)據(jù)是如何存儲(chǔ)的檩禾。

在以上三張圖中,實(shí)心圓圈代表一個(gè)Y分量疤祭,空心圓圈代表一個(gè)UV分量盼产,而因?yàn)橛址秩N不同的采集方式,即1個(gè)Y對(duì)應(yīng)一組UV分量勺馆,2個(gè)Y共用一組UV分量戏售,4個(gè)Y共用一組UV分量,

以YUV4:2:0為例草穆,它又被分為YUV420P與YUV420SP,它們都是YUV420格式灌灾。

  • YUV420P, Plane模式(Y,U,V三個(gè)plane)將Y,U,V分量分別打包,依次存儲(chǔ)悲柱。下圖為I420.
    • I420 : YYYYYYYY UU VV
    • YV12 : YYYYYYYY VV UU
YUV420p - I420
  • YUV420SP(NV12/NV21): two-plane模式锋喜,即Y和UV分為兩個(gè)Plane,但是UV(CbCr)為交錯(cuò)存儲(chǔ),而不是分為三個(gè)plane. 下圖為NV12
    • NV12: YYYYYYYY UVUV
    • NV21: YYYYYYYY VUVU
YUV420sp

根據(jù)以上兩幅圖豌鸡,我們以分辨率為640*480的圖片為例嘿般,則它的大小為 Y : width(640) * height(480) 可認(rèn)為每個(gè)Y即為每個(gè)像素點(diǎn),又因?yàn)槊?個(gè)Y共用一組UV,所以涯冠,U和V的大小都為: width(640) * height(480) * (1 / 4 ). 所以圖片真正的大小為 Y+U+V = 3 / 2 * (width(640) * height(480)).

知道了YUV像素的排列方式以及如何求圖像真正大小后我們便可以開始我們真正的工作炉奴。

在程序中,比如一張圖片的分辨率為640*480,如果該圖片的格式為YUV420P,則我們可以很輕松的算出這張圖片的Y,U,V三個(gè)分量蛇更。
我們用數(shù)組來存儲(chǔ)該圖像的大小byte[] src
則(I420)

  Y = src[width * height];
  U = Y + scr[1/4 * width * height];
  V = U + scr[1/4 * width * height];

注意瞻赶,計(jì)算的結(jié)果是通過不同格式來求的,所以不再一一介紹械荷。

YUV格式可分為兩大類:打包(packed) , 平面(planar)

  • 打包(packed) : 將YUV分量存放在同一個(gè)數(shù)組中共耍,通常是幾個(gè)相鄰的像素組成的一個(gè)宏像素(macro-pixel);
  • 平面(planar) : 使用三個(gè)數(shù)組分開存放YUV三個(gè)分量虑灰,就像一個(gè)三維平面吨瞎。

在以后的開發(fā)中,假如我們要對(duì)視頻流中的圖片做一些特殊處理穆咐,比如Crop, Rotate, Scale, 美顏等等颤诀,如果想高效實(shí)現(xiàn)我們必須了解YUV的格式這樣我們才能做出正確處理。

總結(jié)

本文為YUV的基礎(chǔ)知識(shí)对湃,幫助初學(xué)者或在工作中接觸音視頻開發(fā)后因概念難以理解造成困惑無法繼續(xù)開發(fā)的開發(fā)人員崖叫,只有我們了解了YUV的組成才能在代碼中進(jìn)行靈活應(yīng)用,包括使用例如libyuv等優(yōu)秀的第三方庫拍柒。

參考: 詳解YUV數(shù)據(jù)格式,圖文詳解YUV420數(shù)據(jù)格式,YUV

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末心傀,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拆讯,更是在濱河造成了極大的恐慌脂男,老刑警劉巖养叛,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宰翅,居然都是意外死亡弃甥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門汁讼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淆攻,“玉大人,你說我怎么就攤上這事嘿架∑可海” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵眶明,是天一觀的道長艰毒。 經(jīng)常有香客問我,道長搜囱,這世上最難降的妖魔是什么丑瞧? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮蜀肘,結(jié)果婚禮上绊汹,老公的妹妹穿的比我還像新娘。我一直安慰自己扮宠,他們只是感情好西乖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坛增,像睡著了一般获雕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上收捣,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天届案,我揣著相機(jī)與錄音,去河邊找鬼罢艾。 笑死楣颠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的咐蚯。 我是一名探鬼主播童漩,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼春锋!你這毒婦竟也來了矫膨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎侧馅,沒想到半個(gè)月后直奋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡施禾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年脚线,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弥搞。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡邮绿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出攀例,到底是詐尸還是另有隱情船逮,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布粤铭,位于F島的核電站挖胃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏梆惯。R本人自食惡果不足惜酱鸭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望垛吗。 院中可真熱鬧凹髓,春花似錦、人聲如沸怯屉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锨络。三九已至赌躺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間羡儿,已是汗流浹背礼患。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留失受,地道東北人讶泰。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓咏瑟,卻偏偏與公主長得像拂到,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子码泞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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