數(shù)字媒體壓縮
????????為縮小數(shù)字媒體文件的大小瘦赫,我們需要對其使用壓縮技術(shù)辰晕,一般來說我們所欣賞的媒體內(nèi)容都進行過一定程度的壓縮,無論在電視上的視頻耸彪,藍光碟片伞芹,網(wǎng)頁上的視頻流還是沖iTunes Store購買的資源,我們其實都是和這些內(nèi)容的原始文件的壓縮格式在打交到蝉娜,對數(shù)字媒體進行壓縮可以大幅度縮小文件的尺寸唱较,但是通常會在資源的質(zhì)量上有小幅可見的衰減,
色彩的二次采樣
????????視頻數(shù)據(jù)是使用稱之為YCbCr顏色模式召川,它也常稱為YUV南缓,雖然YUV術(shù)語并不準確,但是讀起來比較方便荧呐,大部分的軟件開發(fā)者都更熟悉RGB顏色模式汉形,即每個像素點都由紅,綠倍阐,藍三個顏色組合而成概疆,YCbCr或者是YUV則使用色彩(顏色)通道UV替換了像素的亮度通道.
????????從上圖中我們可以看到圖片的細節(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)?多種多樣的顏?。
????????在圖像顯示中揍愁,?張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)和飽和度
????????和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的值是每間隔一個采樣赏殃,而最終就變成:
? ??????也就是說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)然是可以的敢艰,
????????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)換公式崭放,不做死記硬背哨苛,如有錯誤,請大佬批評教育