iOS YUV與RGB&YUV算法

數(shù)字媒體壓縮

????????為縮小數(shù)字媒體文件的大小瘦赫,我們需要對其使用壓縮技術(shù)辰晕,一般來說我們所欣賞的媒體內(nèi)容都進行過一定程度的壓縮,無論在電視上的視頻耸彪,藍光碟片伞芹,網(wǎng)頁上的視頻流還是沖iTunes Store購買的資源,我們其實都是和這些內(nèi)容的原始文件的壓縮格式在打交到蝉娜,對數(shù)字媒體進行壓縮可以大幅度縮小文件的尺寸唱较,但是通常會在資源的質(zhì)量上有小幅可見的衰減,

色彩的二次采樣

????????視頻數(shù)據(jù)是使用稱之為YCbCr顏色模式召川,它也常稱為YUV南缓,雖然YUV術(shù)語并不準確,但是讀起來比較方便荧呐,大部分的軟件開發(fā)者都更熟悉RGB顏色模式汉形,即每個像素點都由紅,綠倍阐,藍三個顏色組合而成概疆,YCbCr或者是YUV則使用色彩(顏色)通道UV替換了像素的亮度通道.

此圖來源于AVFoundation

????????從上圖中我們可以看到圖片的細節(jié)都保存在亮度的通道中,假設(shè)世界上沒有陽光峰搪,我們的眼睛是看不到任何的東西岔冀,如果去除亮度,剩下的就是一副灰度圖片概耻,我們在看整合的色彩通道中關(guān)于圖片的所有細節(jié)都丟失了使套,這是由于我們眼睛對亮度的敏感度要高于顏色,所以鞠柄,在YUV中侦高,我們可以通過大幅減少存儲在每個像素點中的顏色信息,而不致于圖片的質(zhì)量嚴重受損厌杜,這個減少顏色數(shù)據(jù)的過程就稱之為色彩的二次采樣奉呛。

我們平時所說的4:4:4和4:2:2以及4:2:0到底指的是什么,以及它的由來夯尽?

????????色彩的二次采樣一般發(fā)生在取樣時侧馅,一些專業(yè)的相機以4:4:4的參數(shù)捕捉圖像,但大部分情況下對于圖片的拍攝使用4:2:2的方式進行的呐萌,面向消費者的攝像頭裝置,比如iPhone手機上的攝像頭谊娇,通常是以4:2:0的方式進行拍攝肺孤,即使經(jīng)過大量層級的二次抽樣之后仍然可以捕捉到高質(zhì)量的圖片罗晕,iPhone手機上拍出來的高質(zhì)量視頻就是很好的例證,

1.RGB的顏色編碼

????????RGB?三個字?分別代表了 紅(Red)赠堵、綠(Green)小渊、藍(Blue),這三種顏?稱為?三原?茫叭,將它們以不同的?例相加酬屉,可以產(chǎn)?多種多樣的顏?。


一個像素點的RGB

????????在圖像顯示中揍愁,?張1280 * 720???的圖?呐萨,就代表著它有1280 * 720?個像素點。其中每?個像素點的顏?顯示都采?RGB?編碼?法莽囤,將RGB?分別取不同的值谬擦,就會展示不同的顏?。

????????RGB?圖像中朽缎,每個像素點都有紅惨远、綠、藍三個原?话肖,其中每種原?都占?8 bit北秽,也就是?個字節(jié),那么?個像素點也就占?24 bit最筒,也就是三個字節(jié)贺氓。

? ? ? ? ?張1280 * 720???的圖?,就占?1280 * 720 * 3 / 1024 / 1024 = 2.63 MB?存儲空間

2.YUV的顏色編碼

? ??????YUV?顏?編碼采?的是?明亮度?和??度?來指定像素的顏?是钥。其中掠归,Y?表示明亮度(Luminance、Luma)悄泥,?U?和V?表示?度(Chrominance虏冻、Chroma)。??度?定義了顏?的兩個??:?調(diào)和飽和度


YUV表示一個像素點

????????和RGB?表示圖像類似弹囚,每個像素點都包含Y厨相、U、V?分量鸥鹉。但是它的Y?和UV?分量是可以分離的蛮穿,如果沒有UV?分量?樣可以顯示完整的圖像,只不過是??的毁渗。對于YUV?圖像來說践磅,并不是每個像素點都需要包含了Y、U灸异、V?三個分量府适,根據(jù)不同的采樣格式羔飞,可以每個Y?分量都對應(yīng)??的UV?分量,也可以?個Y?分量共?UV?分量

傳說中的4:4:4

? ? ? ? 在4:4:4的模式下檐春,色彩的全部信息被保全下來逻淌,如圖:

相鄰的四個像素點

????????相鄰的四個像素點ABCD,每個像素點有自己的YUV疟暖,在色彩的二次采樣的過程中卡儒,分別保留自己的YUV,稱之為4:4:4俐巴;

傳說中的4:2:2

四個相鄰的像素點

????????如圖ABCD四個相鄰的像素點骨望,A(Y0,U0窜骄,V0)锦募,B(Y1,U1邻遏,V1)糠亩,C(Y2,U2准验,V2)赎线,D(Y3,U3糊饱,V3)垂寥,當(dāng)二次采樣的時候,A采樣的時候保留(Y0另锋,U0)滞项,B保留(Y1,V1)夭坪,C保留(Y2文判,U2),D保留(Y3室梅,V3)戏仓;也就是說,每個像素點的Y(明亮度)保留其本身的值亡鼠,而U和V的值是每間隔一個采樣赏殃,而最終就變成:

映射后的結(jié)果

? ??????也就是說A借B的V1,B借A的U0间涵,C借D的V3仁热,D借C的U2,這就是傳說中的4:2:2勾哩,?張1280 * 720???的圖?股耽,在YUV 4:2:2?采樣時的??為:

(1280 * 720 * 8 + 1280 * 720 * 0.5 * 8 * 2)/ 8 / 1024 / 1024 = 1.76 MB?根盒。

? ??????可以看到Y(jié)UV 4:2:2?采樣的圖像?RGB?模型圖像節(jié)省了三分之?的存儲空間,在傳輸時占?的帶寬也會隨之減少

傳說中的4:2:0

? ? ? ? 在上面說到的4:2:2中我們可以看到相鄰的兩個像素點的UV是左右互相借的物蝙,那可不可以上下左右借了,答案當(dāng)然是可以的敢艰,


4:2:0流程

????????YUV 4:2:0?采樣诬乞,并不是指只采樣U?分量?不采樣V?分量。?是指钠导,在每??掃描時震嫉,只掃描?種?度分量(U?或者V),和Y?分量按照2 : 1?的?式采樣牡属。?如票堵,第??掃描時,YU?按照2 : 1?的?式采樣逮栅,那么第??掃描時悴势,YV?分量按照2:1?的?式采樣。對于每個?度分量來說措伐,它的?平?向和豎直?向的采樣和Y?分量相?都是2:1?特纤。假設(shè)第??掃描了U?分量,第??掃描了V?分量侥加,那么需要掃描兩?才能夠組成完整的UV?分量

? ??????從映射出的像素點中可以看到捧存,四個Y?分量是共?了?套UV?分量,?且是按照2*2?的??格的形式分布的担败,相?YUV 4:2:2?采樣中兩個Y?分量共??套UV?分量昔穴,這樣更能夠節(jié)省空間。?張1280 * 720???的圖?提前,在YUV 4:2:0?采樣時的??為:

(1280 * 720 * 8 + 1280 * 720 * 0.25 * 8 * 2)/ 8 / 1024 / 1024 = 1.32 MB 相對于2.63M節(jié)省了一半的空間

RGB — YUV?顏?編碼轉(zhuǎn)換

????????對于圖像顯示器來說吗货,它是通過RGB?模型來顯示圖像的,?在傳輸圖像數(shù)據(jù)時?是使?YUV?模型岖研,這是因為YUV?模型可以節(jié)省帶寬卿操。因此就需要采集圖像時將RGB?模型轉(zhuǎn)換到Y(jié)UV?模型,顯示時再將YUV?模型轉(zhuǎn)換為RGB?模型孙援。

? ??????RGB?到Y(jié)UV?的轉(zhuǎn)換害淤,就是將圖像所有像素點的R、G拓售、B?分量轉(zhuǎn)換到Y(jié)窥摄、U、V?分量础淤。

? ??????Y = 0.299 * R + 0.587 * G + 0.114 * B?

????????U = -0.147 * R - 0.289 * G + 0.436 * B?

????????V = 0.615 * R - 0.515 * G - 0.100 * B

????????R = Y + 1.14 * V?

????????G = Y - 0.39 * U - 0.58 * V?

????????B = Y + 2.03 * U

上面為固定的轉(zhuǎn)換公式崭放,不做死記硬背哨苛,如有錯誤,請大佬批評教育

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末币砂,一起剝皮案震驚了整個濱河市建峭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌决摧,老刑警劉巖亿蒸,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掌桩,居然都是意外死亡边锁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門波岛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茅坛,“玉大人,你說我怎么就攤上這事则拷」北停” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵隔躲,是天一觀的道長摩梧。 經(jīng)常有香客問我,道長宣旱,這世上最難降的妖魔是什么仅父? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮浑吟,結(jié)果婚禮上笙纤,老公的妹妹穿的比我還像新娘。我一直安慰自己组力,他們只是感情好省容,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著燎字,像睡著了一般腥椒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上候衍,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天笼蛛,我揣著相機與錄音,去河邊找鬼蛉鹿。 笑死滨砍,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惋戏,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼领追,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了响逢?” 一聲冷哼從身側(cè)響起绒窑,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舔亭,沒想到半個月后回论,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡分歇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了欧漱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片职抡。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖误甚,靈堂內(nèi)的尸體忽然破棺而出缚甩,到底是詐尸還是另有隱情,我是刑警寧澤窑邦,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布擅威,位于F島的核電站,受9級特大地震影響冈钦,放射性物質(zhì)發(fā)生泄漏郊丛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一瞧筛、第九天 我趴在偏房一處隱蔽的房頂上張望厉熟。 院中可真熱鬧,春花似錦较幌、人聲如沸揍瑟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绢片。三九已至,卻和暖如春岛琼,著一層夾襖步出監(jiān)牢的瞬間底循,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工衷恭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留此叠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像灭袁,于是被迫代替她去往敵國和親猬错。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348