YUV數(shù)據(jù)格式

YUV數(shù)據(jù)格式

目錄

YUV的原理

YUV的取值范圍

YUV的存儲(chǔ)格式

YUV的采樣格式

存儲(chǔ)方式

10bit YUV數(shù)據(jù)的存儲(chǔ)

參考

[1]?圖文詳解YUV420數(shù)據(jù)格式

[2]?fourcc.org/yuv

[3]?fourcc.org/rgb

[4]?雷霄驊/最簡(jiǎn)單的基于FFmpeg的libswscale的示例(YUV轉(zhuǎn)RGB)

[5]?zhanghui_cuc/10bit YUV數(shù)據(jù)在內(nèi)存中的存儲(chǔ)格式

[6]?docs.microsoft.com/10-bit and 16-bit YUV Video Formats

1. YUV的原理

YUV 的原理是把亮度(Luma)與色度(Chroma)分離蔚舀。

“Y”表示亮度抖仅,也就是灰度值笨使。

“U”表示藍(lán)色通道與亮度的差值嗜憔。

“V”表示紅色通道與亮度的差值悄泥。

其中 Y 信號(hào)分量除了表示亮度信號(hào)外呜象,還含有較多的綠色通道量呼寸,單純的 Y 分量可以顯示出完整的黑白圖像稳捆。

U火的、V 分量分別表示藍(lán) (blue)壶愤、紅 (red) 分量信號(hào),只含有色度信息馏鹤,所以 YUV 也稱(chēng)為 YCbCr征椒,其中,Cb湃累、Cr的含義等同于U勃救、V碍讨,C 可以理解為 component 或者 color。

RGB 轉(zhuǎn) YUV 的公式能更好地反應(yīng) YUV 與 RGB 的關(guān)系剪芥,以及為什么稱(chēng)為 YCbCr:

yuv1.png

RGB與YUV的變換公式如下:

yuv_rgb.jpg

在RGB色彩空間中垄开,三個(gè)顏色的重要程度相同,所以需要使用相同的分辨率進(jìn)行存儲(chǔ)税肪,最多使用RGB565這樣的形式減少量化的精度溉躲,但數(shù)據(jù)量還是很大的。

研究發(fā)現(xiàn)人眼對(duì)亮度的敏感超過(guò)色度益兄。將圖像的亮度信息和顏色信息分離锻梳,并使用不同的分辨率進(jìn)行存儲(chǔ),這樣在對(duì)主觀感覺(jué)影響很小的前提下净捅,可以更加有效地存儲(chǔ)圖像數(shù)據(jù)疑枯。

2. YUV的取值范圍

與RGB每個(gè)像素點(diǎn)的每個(gè)分量取值范圍為0-255不同(每個(gè)分量占8bit),YUV取值范圍有兩種:

以Rec.601為代表(還包括BT.709 / BT.2020)的廣播電視標(biāo)準(zhǔn)中蛔六,Y的取值范圍是16-235荆永,U、V的取值范圍是16-240国章。FFmpeg中稱(chēng)之為“mpeg”范圍具钥。

以JPEG為代表的標(biāo)準(zhǔn)中,Y液兽、U骂删、V的取值范圍都是0-255。FFmpeg中稱(chēng)之為“jpeg” 范圍四啰。

實(shí)際中最常見(jiàn)的是第1種取值范圍的YUV(可以自己觀察一下YUV的數(shù)據(jù)宁玫,會(huì)發(fā)現(xiàn)其中亮度分量沒(méi)有取值為0、255這樣的數(shù)值)柑晒。很多人在這個(gè)地方會(huì)有疑惑欧瘪,為什么會(huì)去掉“兩邊”的取值呢?

原因:

在廣播電視系統(tǒng)中不傳輸很低和很高的數(shù)值匙赞,實(shí)際上是為了防止信號(hào)變動(dòng)造成過(guò)載恋追,因而把這“兩邊”的數(shù)值作為“保護(hù)帶”[4]。

下面這張圖是數(shù)字電視中亮度信號(hào)量化后的電平分配圖罚屋。從圖中可以看出。

對(duì)于8bit量化來(lái)說(shuō)嗅绸,信號(hào)的白電平為235脾猛,對(duì)應(yīng)模擬電平為700mV。

黑電平為16鱼鸠,對(duì)應(yīng)模擬電平為0mV猛拴。

信號(hào)上方的“保護(hù)帶”取值范圍是236至254羹铅,而信號(hào)下方的“保護(hù)帶”取值范圍是1-15。

最邊緣的0和255兩個(gè)電平是保護(hù)電平愉昆,是不允許出現(xiàn)在數(shù)據(jù)流中的职员。

與之類(lèi)似,10bit量化的時(shí)候跛溉,白電平是235*4=940焊切,黑電平是16*4=64。

quantization_yuv.jpg

下面兩張圖是數(shù)字電視中色度信號(hào)量化后的電平分配圖芳室∽ǚ荆可以看出:

色度最大正電平為240,對(duì)應(yīng)模擬電平為+350mV堪侯。

色度最大負(fù)電平為16嚎尤,對(duì)應(yīng)模擬電平為-350mV。

需要注意的是伍宦,色度信號(hào)數(shù)字電平128對(duì)應(yīng)的模擬電平是0mV芽死。

quantization_2.jpg

quantization_3.jpg

3. YUV的存儲(chǔ)格式

YUV格式有兩大類(lèi):planar和packed。

對(duì)于 planar 的 YUV 格式次洼,先連續(xù)存儲(chǔ)所有像素點(diǎn)的 Y关贵,緊接著存儲(chǔ)所有像素點(diǎn)的 U,隨后是所有像素點(diǎn)的 V滓玖。相當(dāng)于將 YUV 拆分成三個(gè)平面 (plane) 存儲(chǔ)坪哄。

對(duì)于 packed 的 YUV 格式,每個(gè)像素點(diǎn)的 Y势篡,U翩肌,V 是連續(xù)交替存儲(chǔ)的。

4. YUV的采樣格式

主要的采樣格式有YUV4:4:4禁悠、YUV4:2:2念祭、YUV4:2:0 ,其中YUV4:2:0是最常用的采樣格式碍侦。

采樣就是根據(jù)一定的間隔取值粱坤。其中的比例是指 Y、U瓷产、V 表示的像素站玄,三者分別占的比值。

下圖是YUV4:4:4濒旦,YUV4:2:2株旷,YUV4:2:0的采樣示意圖。

image

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

YUV 4:2:2采樣锉矢,每?jī)蓚€(gè)Y共用一組UV分量。

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

5. 存儲(chǔ)方式

下面用圖的形式給出常見(jiàn)的YUV數(shù)據(jù)的存儲(chǔ)方式,并在后面附有取樣每個(gè)像素點(diǎn)的YUV數(shù)據(jù)的方法循头。

(1) YUYV 格式 (屬于YUV422)

YUYV.png

相鄰的兩個(gè)Y共用其相鄰的兩個(gè)Cb绵估、Cr,對(duì)于像素點(diǎn)Y'00贷岸、Y'01 而言壹士,其Cb、Cr的值均為 Cb00偿警、Cr00躏救,其他的像素點(diǎn)的YUV取值依次類(lèi)推。

(2) UYVY 格式 (屬于YUV422)

YUYV.png

與YUYV不同的是UV的排列順序不一樣螟蒸,還原其每個(gè)像素點(diǎn)的YUV值的方法與上面一樣盒使。

(3) YUV422P(屬于YUV422)

YUV422P.png

YUV422P是一種平面模式,其每一個(gè)像素點(diǎn)的YUV值提取方法也是遵循YUV422格式的最基本提取方法七嫌,即兩個(gè)Y共用一個(gè)UV少办。比如,對(duì)于像素點(diǎn)Y'00诵原、Y'01 而言英妓,其Cb、Cr的值均為 Cb00绍赛、Cr00蔓纠。

(4) YUV420P格式(屬于YUV420)

YV12.png

YUV420P,Y吗蚌,U腿倚,V三個(gè)分量都是平面格式,分為I420和YV12蚯妇。I420格式和YV12格式的不同處在U平面和V平面的位置不同敷燎。注意,上圖中箩言,Y'00硬贯、Y'01、Y'10陨收、Y'11共用Cr00饭豹、Cb00,其他依次類(lèi)推。在I420格式中墨状,U平面緊跟在Y平面之后,然后才是V平面(即:YUV)菲饼;但YV12則是相反(即:YVU)肾砂。

YUV420p.png

I420: YYYYYYYY UU VV

YV12: YYYYYYYY VV UU

(5) NV12、NV21(YUV420sp宏悦,屬于YUV420)

NV12.png

這兩種格式的不同在于UV交錯(cuò)排列的順序不同镐确,是一種two-plane模式,即Y和UV分為兩個(gè)Plane饼煞,但是UV(CbCr)為交錯(cuò)存儲(chǔ)源葫,而不是分為三個(gè)plane。其提取方式與上一種類(lèi)似砖瞧,即Y'00息堂、Y'01、Y'10块促、Y'11共用Cr00荣堰、Cb00,其他依次類(lèi)推竭翠。

假設(shè)一個(gè)分辨率為8X4的YUV圖像振坚,它們的格式如下圖:

YUV420sp格式如下圖

YUV420sp.png

NV12: YYYYYYYY UVUV

NV21: YYYYYYYY VUVU

以w*h大小圖像的YUV420數(shù)據(jù)為例,

其存儲(chǔ)格式是: 共大小為(w * h * 3/2)字節(jié)斋扰,

Y分量:(w * h)個(gè)字節(jié)

U(Cb)分量:(w * h/4)個(gè)字節(jié)

V(Cr)分量:(w * h/4)個(gè)字節(jié)

6. 10bit YUV數(shù)據(jù)的存儲(chǔ)

常見(jiàn)的yuv數(shù)據(jù)渡八,每個(gè)像素的一個(gè)通道一般是占用一個(gè)字節(jié)即8bit。而HDR常用的標(biāo)準(zhǔn)HDR10传货,數(shù)據(jù)是10bit的屎鳍。

10bit數(shù)據(jù)是怎么存儲(chǔ)的呢?我們一般會(huì)有兩種想法:

每個(gè)像素的一個(gè)通道占用兩個(gè)字節(jié)损离,其中6個(gè)bit是填充位哥艇。

每個(gè)像素的一個(gè)通道占用10bit,10bit數(shù)據(jù)和10bit數(shù)據(jù)是挨著排列的僻澎。

優(yōu)缺點(diǎn)

方式1:便于運(yùn)算處理貌踏,有存儲(chǔ)冗余;

方式2:存儲(chǔ)沒(méi)有冗余窟勃,計(jì)算麻煩祖乳。

事實(shí)上,10bit是采用方式1存儲(chǔ)的秉氧,并且高有效字節(jié)的前6個(gè)bit是填充的0眷昆。

HDR10視頻解碼得到Y(jié)UV數(shù)據(jù)的命令:



//yuv420p10le格式ffmpeg-i hdr10.mp4-f rawvideo-pix_fmt yuv420p10be hdr10_yuv420p10le.yuv//yuv420p10be格式ffmpeg-i hdr10.mp4-f rawvideo-pix_fmt yuv420p10be hdr10_yuv420p10le.yuv

(1)yuv420p10le的數(shù)據(jù)格式的16進(jìn)制的顯示:

image.png

比如地址019f7040h開(kāi)始的兩個(gè)字節(jié):

-------------低地址---->高地址--------------0001111100000001

(2)yuv420p10be的數(shù)據(jù)格式的16進(jìn)制的顯示:

image.png

比如地址019f7040h開(kāi)始的兩個(gè)字節(jié):

-------------低地址---->高地址--------------0000000100011111

工具推薦:一個(gè)可以播放10bit yuv流的播放器YUV Player

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子亚斋,更是在濱河造成了極大的恐慌作媚,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帅刊,死亡現(xiàn)場(chǎng)離奇詭異纸泡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)赖瞒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)女揭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人栏饮,你說(shuō)我怎么就攤上這事吧兔。” “怎么了袍嬉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵浅辙,是天一觀的道長(zhǎng)音诈。 經(jīng)常有香客問(wèn)我超埋,道長(zhǎng)卦溢,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任泵殴,我火速辦了婚禮涮帘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘笑诅。我一直安慰自己调缨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布吆你。 她就那樣靜靜地躺著弦叶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妇多。 梳的紋絲不亂的頭發(fā)上伤哺,一...
    開(kāi)封第一講書(shū)人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音者祖,去河邊找鬼立莉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛七问,可吹牛的內(nèi)容都是我干的蜓耻。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼械巡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼刹淌!你這毒婦竟也來(lái)了饶氏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤有勾,失蹤者是張志新(化名)和其女友劉穎疹启,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔼卡,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡皮仁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了菲宴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡趋急,死狀恐怖喝峦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呜达,我是刑警寧澤谣蠢,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站查近,受9級(jí)特大地震影響眉踱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜霜威,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一谈喳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧戈泼,春花似錦婿禽、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至挽绩,卻和暖如春膛壹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唉堪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工模聋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巨坊。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓撬槽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親趾撵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侄柔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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

  • 目錄 YUV的原理 YUV的取值范圍 YUV的存儲(chǔ)格式 YUV的采樣格式 存儲(chǔ)方式 10bit YUV數(shù)據(jù)的存儲(chǔ) ...
    smallest_one閱讀 6,945評(píng)論 1 8
  • 目錄 YUV的原理 YUV的取值范圍 YUV的存儲(chǔ)格式 YUV的采樣格式 存儲(chǔ)方式 10bit YUV數(shù)據(jù)的存儲(chǔ) ...
    李飛_fd28閱讀 1,716評(píng)論 0 0
  • 最近在準(zhǔn)備做Android Camera2相關(guān)應(yīng)用共啃,剛好也碰上了YUV格式相關(guān)的問(wèn)題,所以還是寫(xiě)一篇博客理解YUV...
    MzDavid閱讀 12,296評(píng)論 3 4
  • Y表示亮度暂题,U表示RGB輸入信號(hào)紅色部分與RGB信號(hào)亮度值之間的差異移剪,V表示RGB輸入信號(hào)藍(lán)色部分與RGB信號(hào)亮度...
    飛揚(yáng)_6056閱讀 767評(píng)論 0 0
  • 前言 系列文章:《iOS視頻開(kāi)發(fā)(一):視頻采集》《iOS視頻開(kāi)發(fā)(二):視頻H264硬編碼》《iOS視頻開(kāi)發(fā)(三...
    GenoChen閱讀 7,857評(píng)論 6 21