欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

 首頁(yè) > 技術(shù) > 技術(shù)文摘 > 視頻通信中的視頻壓縮介紹

視頻通信中的視頻壓縮介紹

2008-05-30 00:00:00   作者:   來(lái)源:   評(píng)論:0 點(diǎn)擊:



2008/05/30

關(guān)于色彩
  彩色圖像通常用幾個(gè)“色彩層”來(lái)呈現(xiàn)。例如,RGB彩色圖像包含紅色層、綠色層和藍(lán)色層。每一個(gè)層包含單一色彩(紅色、綠色或藍(lán)色)的整個(gè)圖像。當(dāng)這三層重疊或混合后,將組成全彩圖。為將彩色圖像進(jìn)行壓縮,本文描述的靜態(tài)圖像壓縮方法將依次應(yīng)用到每個(gè)色彩層。
  視頻壓縮應(yīng)用通常使用一種色彩層不對(duì)應(yīng)特定色彩的色彩方案。通常是,一個(gè)色彩層包含亮度信息(彩色圖像中每個(gè)像素的總亮度),兩個(gè)層包含色彩(色度)信息,色度信息與亮度信息結(jié)合起來(lái)可以得到每個(gè)圖像像素特定紅、綠和藍(lán)色彩。
  這樣的色彩方案非常方便,因?yàn)槿搜蹖?duì)亮度比對(duì)色度更敏感,因此色度層的編碼和存儲(chǔ)圖像分辨率都比亮度信息更低。特別是視頻壓縮算法通常對(duì)色度層的垂直和水平編碼的分辨率都僅為亮度層的一半。因此,在亮度層中的每個(gè)16 x16像素區(qū)域內(nèi),每個(gè)色度層包含一個(gè)8x8像素的塊。在典型的視頻壓縮算法中,“宏塊”為視頻幀中的一個(gè)16x16像素的區(qū)域,該宏塊包含4個(gè)8x8亮度塊,以及兩個(gè)對(duì)應(yīng)的8x8色度塊。宏塊允許采用后面介紹的運(yùn)動(dòng)估計(jì)和補(bǔ)償,這兩個(gè)技術(shù)將與上面介紹的色度層次采樣結(jié)合使用。
增加運(yùn)動(dòng)因素
  使用上面介紹的方法,像JPEG這樣的靜態(tài)圖像壓縮算法可以在壓縮率為10:1的條件下獲得很好的圖像質(zhì)量。最先進(jìn)的靜態(tài)圖像編碼器在壓縮率高達(dá)30:1下也能獲得很好的圖像質(zhì)量。視頻壓縮算法采用運(yùn)動(dòng)估計(jì)和補(bǔ)償可以利用連續(xù)視頻幀之間的相似性。這樣可以使視頻壓縮算法在壓縮率達(dá)200:1的情況下獲得很好的視頻質(zhì)量。
  在某些視頻場(chǎng)景下,例如新聞節(jié)目中運(yùn)動(dòng)圖像很少。在這種情況下,每個(gè)視頻幀中的8x8像素的塊大部分與前一幀是相同的,或者接近相同。壓縮算法通過(guò)運(yùn)算兩個(gè)幀之間的差異性可以利用這一事實(shí),利用上面介紹的靜態(tài)圖像壓縮方法來(lái)對(duì)這種差異性進(jìn)行編碼。對(duì)于大部分圖像塊來(lái)說(shuō),這種差異性很小,與單獨(dú)對(duì)每個(gè)幀進(jìn)行編碼相比,這種方法需要的編碼數(shù)據(jù)位非常少。然而,如果攝像機(jī)是進(jìn)行搖攝的或者場(chǎng)景中某個(gè)大的物體在移動(dòng),那么每個(gè)塊將不再與前一幀中對(duì)應(yīng)塊相同。相反,與前一幀中8x8像素區(qū)域相似的塊位置發(fā)生了偏移,產(chǎn)生了與運(yùn)動(dòng)方向?qū)?yīng)的一個(gè)距離。值得注意的是,每個(gè)視頻幀通常由兩個(gè)色度層和一個(gè)亮度層組成,如上面所述。很顯然,每個(gè)層的運(yùn)動(dòng)情況是相同的。盡管亮度和色度層的分辨率不同,為利用這種事實(shí),以宏塊而不是以三個(gè)層中單獨(dú)的8x8像素塊進(jìn)行運(yùn)動(dòng)研究。
運(yùn)動(dòng)估計(jì)和補(bǔ)償
  運(yùn)動(dòng)估計(jì)是嘗試發(fā)現(xiàn)在前一編碼幀(稱(chēng)為“基準(zhǔn)幀”)中的一個(gè)與當(dāng)前幀中每個(gè)宏塊緊密匹配的區(qū)域。對(duì)于每一個(gè)宏塊來(lái)說(shuō),運(yùn)動(dòng)估計(jì)產(chǎn)生一個(gè)“運(yùn)動(dòng)矢量”。運(yùn)動(dòng)矢量是由當(dāng)前幀中宏塊相對(duì)于所選擇的16x16像素區(qū)域的基準(zhǔn)幀中位置的水平和垂直偏移組成。視頻編碼器通常使用VLC來(lái)對(duì)視頻碼流中的運(yùn)動(dòng)矢量進(jìn)行編碼。所選擇的16x16像素區(qū)域被用于當(dāng)前宏模塊中像素的預(yù)測(cè),使用上面介紹的靜態(tài)圖像壓縮方法來(lái)進(jìn)行宏塊之間的差異以及所選擇區(qū)域(預(yù)測(cè)誤差)的運(yùn)算和編碼。絕大多數(shù)的視頻壓縮標(biāo)準(zhǔn)允許在編碼器不能發(fā)現(xiàn)宏塊的足夠好的匹配時(shí),忽略這種預(yù)測(cè)。這時(shí),對(duì)宏塊本身進(jìn)行編碼,而不是對(duì)預(yù)測(cè)誤差進(jìn)行編碼。
  值得注意的是,基準(zhǔn)幀并不總是連續(xù)視頻幀中的前一個(gè)顯示幀。視頻壓縮算法通常對(duì)幀的編碼順序與他們顯示的順序是不相同。編碼器可能向前跳過(guò)幾個(gè)幀,對(duì)未來(lái)的幀進(jìn)行編碼,然后跳回來(lái),對(duì)顯示序列中的下一個(gè)幀編碼。之所以這樣做,是因?yàn)榭梢岳镁幋a的未來(lái)幀作為基準(zhǔn)幀向后及時(shí)地實(shí)現(xiàn)運(yùn)動(dòng)估計(jì)。視頻壓縮算法還可以使用兩個(gè)基準(zhǔn)幀—一個(gè)是前面已顯示的幀,一個(gè)是前面已編碼的未來(lái)幀。這樣允許編碼器從任意一個(gè)基準(zhǔn)幀中選擇一個(gè)16X16像素的區(qū)域,或者在前面顯示幀的16X16像素區(qū)域和未來(lái)幀的16X16像素區(qū)域之間通過(guò)插值方法預(yù)測(cè)一個(gè)宏塊。
  依賴(lài)前一個(gè)編碼幀來(lái)對(duì)每一個(gè)新幀解碼進(jìn)行修正的一個(gè)缺點(diǎn)是,一個(gè)幀的傳遞錯(cuò)誤會(huì)使每個(gè)緊隨而來(lái)的幀不能重建。為緩解這個(gè)問(wèn)題,視頻壓縮標(biāo)準(zhǔn)偶爾只使用靜態(tài)圖像編碼方法對(duì)一個(gè)視頻幀進(jìn)行編碼,而不需依賴(lài)于前一個(gè)編碼幀。這些幀就成為“內(nèi)幀”(或I frame,即I幀)。如果壓縮碼流中的一個(gè)幀因?yàn)殄e(cuò)誤而被破壞,視頻解碼器必須等到下一個(gè)I幀,這種方法就不需要基準(zhǔn)幀來(lái)進(jìn)行視頻重構(gòu)。
  僅僅使用前一個(gè)顯示的基準(zhǔn)幀來(lái)編碼的幀被稱(chēng)為“P幀”,同時(shí)使用前一個(gè)顯示幀和未來(lái)幀作為基準(zhǔn)幀進(jìn)行編碼的幀稱(chēng)為“B幀”。在通常的場(chǎng)景中,編解碼器編碼一個(gè)I幀,然后向前跳過(guò)幾個(gè)幀,用編碼I幀作為基準(zhǔn)幀對(duì)一個(gè)未來(lái)P幀進(jìn)行編碼,然后跳回到I幀之后的下一個(gè)幀。編碼的I幀和P幀之間的幀被編碼為B幀。之后,編碼器會(huì)再次跳過(guò)幾個(gè)幀,使用第一個(gè)P幀作為基準(zhǔn)幀編碼另外一個(gè)P幀,然后再次跳回,用B幀填充顯示序列中的空隙。這個(gè)過(guò)程不斷繼續(xù),每12到15個(gè)P幀和B幀內(nèi)插入一個(gè)新的I幀。例如,圖1種給出了一個(gè)典型的視頻幀序列。

圖1:典型的I、P和B幀序列。

  視頻壓縮標(biāo)準(zhǔn)某些時(shí)候限制運(yùn)動(dòng)矢量的水平和垂直分量,這樣在運(yùn)動(dòng)估計(jì)時(shí)每個(gè)宏塊和所選擇的16x16像素區(qū)域之間最大可能的距離會(huì)遠(yuǎn)小于幀的寬度或高度。這種限制輕微地減少了對(duì)運(yùn)動(dòng)矢量進(jìn)行編碼所需要的數(shù)據(jù)位數(shù),也減少了執(zhí)行運(yùn)動(dòng)估計(jì)所需要的運(yùn)算量。包含在允許的運(yùn)動(dòng)矢量中的所有可能的16x16像素區(qū)域的基準(zhǔn)幀部分被稱(chēng)為“搜尋區(qū)域”。







  視頻壓縮算法采用了多種技術(shù),例如運(yùn)動(dòng)估計(jì)、轉(zhuǎn)換和可變長(zhǎng)度編碼。盡管大多數(shù)當(dāng)前的視頻壓縮算法共享這些的基本任務(wù),在算法和實(shí)現(xiàn)方法上存在大量的變化。例如,在不同的編碼器中,甚至即使符合相同的壓縮標(biāo)準(zhǔn),執(zhí)行運(yùn)動(dòng)估計(jì)的算術(shù)方法和實(shí)現(xiàn)方法都可能不同。此外,對(duì)于某個(gè)信號(hào)處理任務(wù)來(lái)說(shuō),最有效的實(shí)現(xiàn)方法對(duì)于不同的處理器來(lái)說(shuō)也可能有很大的差別,即使每個(gè)處理器使用一種相似的算法。最后,某些任務(wù)的運(yùn)算量,如運(yùn)動(dòng)補(bǔ)償,根據(jù)不同的視頻節(jié)目?jī)?nèi)容變化很大。因此,在某個(gè)特定的處理器上,視頻編碼器或解碼器的運(yùn)算負(fù)擔(dān)很難以預(yù)測(cè)。

盡管有這些可變性,依然可以很容易地發(fā)現(xiàn)幾個(gè)趨勢(shì):

  運(yùn)動(dòng)估計(jì)是視頻壓縮處理中運(yùn)算需求最大的任務(wù),通常使編碼器的運(yùn)算負(fù)擔(dān)為解碼器的幾倍。

  解碼器的運(yùn)算負(fù)擔(dān)通常決定于可變長(zhǎng)解碼、逆轉(zhuǎn)換和運(yùn)動(dòng)補(bǔ)償功能。

  運(yùn)動(dòng)估計(jì)、運(yùn)動(dòng)補(bǔ)償、轉(zhuǎn)換和量化/去量化任務(wù)的運(yùn)算負(fù)擔(dān)通常與每個(gè)幀的像素?cái)?shù)量和幀率成正比。不同的是,可變長(zhǎng)解碼功能的運(yùn)算量與壓縮視頻碼流的碼率成正比。

  在解碼后的視頻流中應(yīng)用的后處理步驟,即去馬賽克、去環(huán)狀瑕疵以及色彩空間轉(zhuǎn)換都大大地增加了視頻解碼應(yīng)用的運(yùn)算負(fù)擔(dān)。這些功能的運(yùn)算負(fù)擔(dān)會(huì)很容易地超過(guò)視頻壓縮步驟,與每個(gè)幀的像素?cái)?shù)量以及幀率成正比。

  相比于運(yùn)算量的預(yù)測(cè),視頻壓縮應(yīng)用的存儲(chǔ)器要求的預(yù)測(cè)容易得多:在視頻壓縮應(yīng)用中,存儲(chǔ)器主要取決于用于存儲(chǔ)當(dāng)前和基準(zhǔn)幀的大容量緩存。如果壓縮方案支持I-和P-幀,只需要兩個(gè)幀緩存;如果還支持B-幀的話(huà),則需要三個(gè)緩存。像去馬賽克、去環(huán)狀瑕疵、色彩空間轉(zhuǎn)換的后處理步驟可能需要另外的輸出緩存。這些緩存的大小與每個(gè)幀的像素?cái)?shù)量成正比。

  與像程序存儲(chǔ)器、查找表以及中間數(shù)據(jù)等因素相結(jié)合,組成通常視頻應(yīng)用的存儲(chǔ)器需求的重要部分,盡管這個(gè)部分通常只有幀緩存存儲(chǔ)器的幾分之一。

  實(shí)現(xiàn)高度優(yōu)化的視頻編碼和解碼軟件需要徹底地理解本文介紹的目標(biāo)處理器的信號(hào)處理概念。大多數(shù)的視頻壓縮標(biāo)準(zhǔn)不會(huì)規(guī)定運(yùn)動(dòng)估計(jì)的方法。盡管基準(zhǔn)編碼器適合于大多數(shù)的標(biāo)準(zhǔn),深入了解視頻壓縮算法通常允許設(shè)計(jì)師利用更多成熟的運(yùn)動(dòng)估計(jì)方法,并獲得更好的結(jié)果。此外,全面理解信號(hào)處理原理,實(shí)現(xiàn)信號(hào)處理功能,以及了解目標(biāo)處理器的細(xì)節(jié)知識(shí)對(duì)于有效地將視頻壓縮算法中的各種任務(wù)對(duì)應(yīng)到處理器的結(jié)構(gòu)資源來(lái)說(shuō)是非常重要的。

Berkeley設(shè)計(jì)技術(shù)公司

相關(guān)閱讀:

分享到: 收藏

專(zhuān)題