YUV數(shù)據(jù)分析1

原文地址:https://www.cnblogs.com/lidabo/p/3141454.html

做視頻采集與處理,自然少不了要學(xué)會分析YUV數(shù)據(jù)。因?yàn)閺牟杉慕嵌葋碚f,一般的視頻采集芯片輸出的碼流一般都是YUV數(shù)據(jù)流的形式,而從視頻處理(例如H.264、MPEG視頻編解碼)的角度來說,也是在原始YUV碼流進(jìn)行編碼和解析,所以,了解如何分析YUV數(shù)據(jù)流對于做視頻領(lǐng)域的人而言,至關(guān)重要。本文就是根據(jù)我的學(xué)習(xí)和了解,簡單地介紹如何分析YUV數(shù)據(jù)流。

YUV,分為三個(gè)分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。

與我們熟知的RGB類似,YUV也是一種顏色編碼方法,主要用于電視系統(tǒng)以及模擬視頻領(lǐng)域,它將亮度信息(Y)與色彩信息(UV)分離,沒有UV信息一樣可以顯示完整的圖像,只不過是黑白的,這樣的設(shè)計(jì)很好地解決了彩色電視機(jī)與黑白電視的兼容問題。并且,YUV不像RGB那樣要求三個(gè)獨(dú)立的視頻信號同時(shí)傳輸,所以用YUV方式傳送占用極少的頻寬。

好了,言歸正傳,談?wù)勅绾畏治鯵UV碼流吧。YUV碼流有多種不同的格式,要分析YUV碼流,就必須搞清楚你面對的到底是哪一種格式,并且必須搞清楚這種格式的YUV采樣和分布情況。下面我將介紹幾種常用的YUV碼流格式,供大家參考。

1. 采樣方式

YUV碼流的存儲格式其實(shí)與其采樣的方式密切相關(guān),主流的采樣方式有三種,YUV4:4:4,YUV4:2:2,YUV4:2:0,關(guān)于其詳細(xì)原理,可以通過網(wǎng)上其它文章了解,這里我想強(qiáng)調(diào)的是如何根據(jù)其采樣格式來從碼流中還原每個(gè)像素點(diǎn)的YUV值,因?yàn)橹挥姓_地還原了每個(gè)像素點(diǎn)的YUV值,才能通過YUV與RGB的轉(zhuǎn)換公式提取出每個(gè)像素點(diǎn)的RGB值,然后顯示出來。

用三個(gè)圖來直觀地表示采集的方式吧,以黑點(diǎn)表示采樣該像素點(diǎn)的Y分量,以空心圓圈表示采用該像素點(diǎn)的UV分量。



先記住下面這段話,以后提取每個(gè)像素的YUV分量會用到。

YUV 4:4:4采樣,每一個(gè)Y對應(yīng)一組UV分量。

YUV 4:2:2采樣,每兩個(gè)Y共用一組UV分量。

YUV 4:2:0采樣,每四個(gè)Y共用一組UV分量。

2. 存儲方式

下面我用圖的形式給出常見的YUV碼流的存儲方式,并在存儲方式后面附有取樣每個(gè)像素點(diǎn)的YUV數(shù)據(jù)的方法,其中,Cb、Cr的含義等同于U、V。

(1) YUVY 格式 (屬于YUV422)



YUYV為YUV422采樣的存儲格式中的一種,相鄰的兩個(gè)Y共用其相鄰的兩個(gè)Cb、Cr,分析,對于像素點(diǎn)Y'00、Y'01 而言,其Cb、Cr的值均為 Cb00、Cr00,其他的像素點(diǎn)的YUV取值依次類推。

(2) UYVY 格式 (屬于YUV422)



UYVY格式也是YUV422采樣的存儲格式中的一種,只不過與YUYV不同的是UV的排列順序不一樣而已,還原其每個(gè)像素點(diǎn)的YUV值的方法與上面一樣。

(3) YUV422P(屬于YUV422)



YUV422P也屬于YUV422的一種,它是一種Plane模式,即打包模式,并不是將YUV數(shù)據(jù)交錯(cuò)存儲,而是先存放所有的Y分量,然后存儲所有的U(Cb)分量,最后存儲所有的V(Cr)分量,如上圖所示。其每一個(gè)像素點(diǎn)的YUV值提取方法也是遵循YUV422格式的最基本提取方法,即兩個(gè)Y共用一個(gè)UV。比如,對于像素點(diǎn)Y'00、Y'01 而言,其Cb、Cr的值均為 Cb00、Cr00。

(4)YV12,YU12格式(屬于YUV420)



YU12和YV12屬于YUV420格式,也是一種Plane模式,將Y、U、V分量分別打包,依次存儲。其每一個(gè)像素點(diǎn)的YUV數(shù)據(jù)提取遵循YUV420格式的提取方式,即4個(gè)Y分量共用一組UV。注意,上圖中,Y'00、Y'01、Y'10、Y'11共用Cr00、Cb00,其他依次類推。

(5)NV12、NV21(屬于YUV420)


NV12和NV21屬于YUV420格式,是一種two-plane模式,即Y和UV分為兩個(gè)Plane,但是UV(CbCr)為交錯(cuò)存儲,而不是分為三個(gè)plane。其提取方式與上一種類似,即Y'00、Y'01、Y'10、Y'11共用Cr00、Cb00

3. 總結(jié)

幾種常見的YUV碼流格式就簡單地列在上面了,大家在處理YUV碼流前,先了解清楚自己的碼流到底屬于哪一種,然后對應(yīng)進(jìn)行處理。

最后,再回答一個(gè)疑問,即分析清楚YUV碼流格式了,我們可以做什么?最常用的一點(diǎn)就是,提取出所有的Y分量,然后利用vc或者matlab把你采集的圖像的灰度值(Y分量)顯示處理,這樣你就可以很快地知道你采集的圖像是否有問題了。后面我將繼續(xù)寫一些文章講述如何提取、轉(zhuǎn)換、顯示這些YUV原始碼流,有興趣可以繼續(xù)關(guān)注,歡迎留言討論。

from:http://ticktick.blog.51cto.com/823160/555791

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前一陣子在梳理以前文章的時(shí)候,發(fā)現(xiàn)自己雖然總結(jié)了各種視音頻應(yīng)用程序,卻還缺少一個(gè)適合無視音頻背景人員學(xué)習(xí)的“最基礎(chǔ)...
    視頻音頻小白閱讀 2,140評論 1 3
  • 轉(zhuǎn)自:http://www.cnblogs.com/azraelly/archive/2013/01/01/284...
    rickytang0閱讀 944評論 0 1
  • 敢批評你的人才是你的貴人! 批評是真誠的愛護(hù),批評是寶貴的支持,批評是崇高的獎(jiǎng)賞,批評是珍貴的禮物! 1、一般人被...
    猜哪生活圈閱讀 505評論 0 0
  • 青春,沒有刻意的去想過。但是,我們已經(jīng)踏上了青春的道路。而且,這將是一條不歸路。 兒童時(shí)光,少年時(shí)光,已經(jīng)慢慢...
    前路逍遙閱讀 213評論 0 1
  • https://github.com/Sateetje/ProjectsUsingNEM/blob/master/...
    路途_3f70閱讀 276評論 0 0

友情鏈接更多精彩內(nèi)容