YUV格式圖像基礎(chǔ)

1.YUV基礎(chǔ)

yuv是一種類似rgb的顏色模型,起源于黑白和彩電的過(guò)渡時(shí)期。其中Y代表亮度,uv組合起來(lái)可以表示色度。yuv信息只有y的信息就足以顯示黑白的圖片,yuv和YCbCr表示相同的東西,且Cb嚴(yán)格對(duì)應(yīng)U,Cr嚴(yán)格對(duì)應(yīng)V,yuv和rgb可以通過(guò)固定公式進(jìn)行轉(zhuǎn)換。

yuv轉(zhuǎn)rgb:

yuv轉(zhuǎn)rgb

rgb轉(zhuǎn)yuv:

rgb轉(zhuǎn)yuv

yuv主流的采樣方式有yuv4:4:4、yuv4:2:2、yuv4:2:0。下圖中以黑點(diǎn)表示采樣該像素點(diǎn)的Y分量,以空心圓圈表示采用該像素點(diǎn)的UV分量,可以看到這些采樣方式是影響uv的采樣的,對(duì)y都是全部采樣。

YUV采樣方式
  1. YUV 4:4:4采樣,每一個(gè)Y對(duì)應(yīng)一組UV分量,圖像和rgb占用的字小大小一致,均為pixelsize*3。
  2. YUV 4:2:2采樣,每?jī)蓚€(gè)Y共用一組UV分量,占用的大小為pixelsize+pixelsize/2+pixelsize/2。
  3. YUV 4:2:0采樣,每四個(gè)Y共用一組UV分量,占用大小為pixelsize+pixelsize/4+pixelsize/4。

可以看到,yuv格式圖像信息可以比rgb格式占用的字節(jié)碼更少,所以可以用yuv來(lái)傳輸色彩數(shù)據(jù),接收到y(tǒng)uv數(shù)據(jù)后再轉(zhuǎn)換為rgb來(lái)顯示圖像,從而減少了傳輸圖像占用的帶寬。

2.常見(jiàn)的YUV格式

yuv衍生出了很多格式,主要是由于其存儲(chǔ)方式?jīng)Q定的。

yuv按照存儲(chǔ)方式可以分成兩個(gè)大類:

  • packed:打包格式是將yuv分量混合存在同一個(gè)數(shù)組中
  • planar:平面格式是將yuv三個(gè)分量存成三個(gè)數(shù)組或者兩個(gè)數(shù)組分別存儲(chǔ)

packed存儲(chǔ)的yuv的存儲(chǔ)先后不同,細(xì)分為了yuv、yvu、yvyu、uyvy等等。

planar存儲(chǔ)的yuv依據(jù)數(shù)組數(shù)量分成了yuv分別三個(gè)數(shù)組表示的完全平面的,以及y一個(gè)數(shù)組而uv一個(gè)數(shù)組的半平面(Semi planar)的兩類,而半平面的又可以細(xì)分為uv和vu兩個(gè)存儲(chǔ)順序。

常見(jiàn)的yuv格式列表如下:

I420: YYYYYYYY UU VV =>YUV420P
YV12: YYYYYYYY VV UU =>YUV420P
NV12: YYYYYYYY UVUV =>YUV420SP
NV21: YYYYYYYY VUVU =>YUV420SP //安卓Camera默認(rèn)格式

3.操作yuv圖像

涉及到攝像頭幀圖像處理的應(yīng)用經(jīng)常需要操作Yuv數(shù)據(jù)幀,例如鏡像、加濾鏡等。

操作yuv圖像可以直接使用google開(kāi)源的libyuv庫(kù),提供了對(duì)yuv圖像的格式轉(zhuǎn)換、縮放、裁剪、旋轉(zhuǎn)、鏡像等操作:谷歌git libyuv,github上有人用其做了簡(jiǎn)單的安卓版本的demo:安卓libyuvDemo,包含了基礎(chǔ)的yuv庫(kù)的使用邏輯,但是該項(xiàng)目沒(méi)有同步谷歌libyuv更新。

參考鏈接:

https://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html

http://www.360doc.com/content/16/0517/16/496343_559909505.shtml

谷歌git libyuv

[安卓libyuvDemo

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

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

  • 前一陣子在梳理以前文章的時(shí)候,發(fā)現(xiàn)自己雖然總結(jié)了各種視音頻應(yīng)用程序,卻還缺少一個(gè)適合無(wú)視音頻背景人員學(xué)習(xí)的“最基礎(chǔ)...
    視頻音頻小白閱讀 2,130評(píng)論 1 3
  • RGB和YUV 多媒體編程 一、概念 1.什么是RGB? 對(duì)一種顏色進(jìn)行編碼的方法統(tǒng)稱為“顏色空間”或“色域”。用...
    流年易逝_(tái)李閱讀 14,853評(píng)論 0 6
  • 矩陣 在先講顏色編碼之前,先回顧一下高數(shù)中的矩陣的基本知識(shí)《線性代數(shù)》: 什么是矩陣 矩陣是指縱橫排列的二維數(shù)據(jù)表...
    DramaScript閱讀 7,155評(píng)論 2 10
  • 千錘萬(wàn)搗出精粉, 快腳踏踩排隊(duì)等。 逢過(guò)年節(jié)香米果, 添柴扇火果坯蒸。 一一彭甫2018年 4月17日晚書
    彭甫閱讀 1,064評(píng)論 2 5
  • 11月23日豐盛日記 思想: 今天的清晨沐心來(lái)自《論語(yǔ)》的開(kāi)章首段,原文為:子曰:“學(xué)而時(shí)習(xí)之,不亦說(shuō)乎?...
    c2af4cc51cce閱讀 333評(píng)論 0 1

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