新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 圖像壓縮編碼和解碼原理知識(shí)介紹

圖像壓縮編碼和解碼原理知識(shí)介紹

作者: 時(shí)間:2012-02-21 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/165863.htm

為頻率域的數(shù)值,這里稱為DCT系數(shù)。
對(duì)于上述64點(diǎn)陣列來(lái)說(shuō),可得到64個(gè)DCT系數(shù),轉(zhuǎn)換為圖(d)矩形陣列表格。它已經(jīng)將64個(gè)點(diǎn)的采樣值組成的陣列,變?yōu)橐粋€(gè)直流平均值和63個(gè)不同頻率余弦波幅值組成的64個(gè)點(diǎn)陣列,并稱為DCT系數(shù)陣列。經(jīng)過(guò)上述變換后,已將空間坐標(biāo)的數(shù)據(jù)轉(zhuǎn)換為頻率坐標(biāo)的數(shù)據(jù),即DCT頻率系數(shù)。原有8×8區(qū)塊的各個(gè)像素的數(shù)值取樣量化后,轉(zhuǎn)變?yōu)轭l率域信號(hào)的頻譜系數(shù),即可用64個(gè)頻率系數(shù)來(lái)表述,稱它們?yōu)?4個(gè)“正交基信號(hào)”,每個(gè)基信號(hào)對(duì)應(yīng)于64個(gè)獨(dú)立二維空間頻率中的一個(gè)。這些空間頻率是由輸入信號(hào)的“頻譜”組成。所得64個(gè)變換系數(shù)當(dāng)中,第一項(xiàng)代表直流分量,即64個(gè)空間采樣值的平均值,其余63個(gè)系數(shù)代表各基信號(hào)的幅度。
觀察圖2.3.2(d)數(shù)據(jù)可發(fā)現(xiàn)規(guī)律,矩陣左上角的數(shù)值較大,而右下角的數(shù)值較小,且趨近于零值。于是,可以按照Z(yǔ)字形掃描順序,將各基信號(hào)的DCT系數(shù)列成一個(gè)表格。Z字形掃描的具體軌跡,如圖2.3.2(e)所示。按照此規(guī)律將DCT系數(shù)排列成數(shù)據(jù)系列,成為DCT系數(shù)順序。經(jīng)過(guò)上述處理后,已將二維數(shù)據(jù)量轉(zhuǎn)換為一維數(shù)據(jù)量,該數(shù)列第一項(xiàng)是該區(qū)塊的平均亮度值,后面各項(xiàng)系數(shù)的分布和大小可以反映亮度起伏變化的劇烈程度。若系數(shù)較大,說(shuō)明亮度起伏較大,該區(qū)域圖像輪廓較細(xì)致;若數(shù)值較小,則說(shuō)明該區(qū)內(nèi)亮度變化較平緩;若數(shù)值為零,表示數(shù)列中高頻分量數(shù)值為零,亮度電平無(wú)變化。在實(shí)際數(shù)據(jù)處理過(guò)程中,排在后面的系數(shù)值基本上都有是零值,或者趨于零值。由63個(gè)系數(shù)集合及變化情況,可反映出該區(qū)塊內(nèi)圖像細(xì)節(jié)情況,即圖像清晰度狀況。
圖(d)矩陣數(shù)值非常具有實(shí)用價(jià)值。左上角數(shù)值較大,它們代表了圖像信息的直流成分和低頻分量,它是圖像信息的主體部分,也是區(qū)塊內(nèi)信息的主要部分;而右下角數(shù)值較小,它們代表了圖像信息的高頻分量,其幅值原本就比較小,它主要反映圖像的細(xì)節(jié)部分。人眼睛對(duì)圖像的亮度信息有較高的相對(duì)靈敏度,對(duì)圖像的彩色信息不夠敏感;還有,人眼睛對(duì)圖像信息的低頻分量具有較高的視覺(jué)靈敏度。經(jīng)Z字形字掃描后所形成的數(shù)據(jù)系列,恰好與人眼睛對(duì)圖像信息的敏感程度形成良好的對(duì)應(yīng)關(guān)系。根據(jù)視覺(jué)生理的上述規(guī)律,可對(duì)圖像數(shù)據(jù)進(jìn)行。
2、DCT系數(shù)的再量化處理
經(jīng)過(guò)上述DCT處理的頻率數(shù)據(jù)可以進(jìn)行再處理,進(jìn)一步數(shù)據(jù)量。人眼睛對(duì)各種頻率的敏感程度不同,并可取得統(tǒng)計(jì)性靈敏度數(shù)值。由此可對(duì)每種頻率分量設(shè)定不同的折算值,將前述經(jīng)轉(zhuǎn)換得到的DCT系數(shù)再次進(jìn)行折算,以便進(jìn)一步突出視覺(jué)效果影響大的成分,而消弱或忽略視覺(jué)效果影響小的成分。這種處理方法稱為量化處理,簡(jiǎn)稱Q處理。對(duì)于64點(diǎn)陣列的64個(gè)系數(shù)來(lái)說(shuō),對(duì)應(yīng)了64種不同頻率,可使用64個(gè)不同的折算值。通常稱這64個(gè)折算值為量化表,每個(gè)折算值稱為量化步長(zhǎng),或稱量化值。在64點(diǎn)陣列中,左上角的數(shù)據(jù)量化值較小,右下角的數(shù)據(jù)量化值較大。對(duì)DCT系數(shù)的再量化處理,可利用量化器電路來(lái)實(shí)現(xiàn)。該電路可將區(qū)塊的64個(gè)系數(shù)分別除以量化表中對(duì)應(yīng)位置量化步長(zhǎng),再進(jìn)行四舍五入取整后,即可得到經(jīng)過(guò)再量化處理的64個(gè)數(shù)據(jù)值。
經(jīng)過(guò)量化處理后,量化值大的系數(shù)值所得商值較小,也就是數(shù)據(jù)比較大,原圖像相應(yīng)部分的忽略內(nèi)容較多;量化值小的系數(shù)所得商數(shù)值較大,也就是數(shù)據(jù)壓縮比較小,原圖像相應(yīng)部分不予忽略或極小忽略。于是,經(jīng)過(guò)量化處理后的DCT系數(shù)矩陣,可出現(xiàn)許多零值。一般左上角位置的數(shù)據(jù)的商數(shù)是非0,在右下角位置的數(shù)據(jù)的商數(shù)很小,經(jīng)四舍五入取整值后可簡(jiǎn)寫(xiě)為0。在系數(shù)矩陣上出現(xiàn)了許多0值,則大大減少了數(shù)據(jù)量。一方面保留了圖像信息的主體部分,另一方面大大壓縮了像數(shù)據(jù)。
3.可變長(zhǎng)度(VLC)
經(jīng)量化處理的系數(shù)矩陣出現(xiàn)了許多0值,若進(jìn)行Z字形掃描時(shí),后面的系數(shù)將也出現(xiàn)連續(xù)0的狀況。此時(shí),數(shù)據(jù)傳輸總量已經(jīng)明顯減少,但碼位并未減少,仍為64個(gè)系數(shù)位。為了進(jìn)一步壓縮數(shù)據(jù)總量,可采用可變長(zhǎng)度,并簡(jiǎn)稱VLC(Variable Length Coding)。
通常,采用兩種方法進(jìn)行可變長(zhǎng)度編碼。第一種,是根據(jù)數(shù)據(jù)出現(xiàn)的頻率,分配以不同長(zhǎng)度的碼字來(lái)代替,對(duì)于頻繁出現(xiàn)的數(shù)據(jù),分配以較短的碼字,那些不經(jīng)常出現(xiàn)的數(shù)據(jù),則賦予較長(zhǎng)的碼字,這樣處理后可減少傳輸?shù)目偞a率。第二種方法,雖然Z字形掃描使系數(shù)列尾部出現(xiàn)多個(gè)0個(gè)值,但不需要逐位地傳輸0值,僅需傳送表0的“個(gè)數(shù)”碼,待重放時(shí)再按規(guī)定恢復(fù)為0位,以便填滿矩陣的64位。例如00000,則可表示為50,在解碼時(shí)恢復(fù)為00000。
總之,對(duì)于靜止畫(huà)面來(lái)說(shuō),采用離散余弦變換,Z字形掃描、量化處理和可變長(zhǎng)度編碼等方法,可使圖像數(shù)據(jù)量大大壓縮。在數(shù)據(jù)解碼時(shí),先經(jīng)過(guò)可變長(zhǎng)度解碼,恢復(fù)為數(shù)據(jù)的固定長(zhǎng)度;再對(duì)系數(shù)進(jìn)行反量化,恢復(fù)為原來(lái)的DCT頻率系數(shù);再經(jīng)過(guò)反向離散余弦變換,恢復(fù)為圖像的空間坐標(biāo)數(shù)值,即原來(lái)圖像的數(shù)據(jù)。
三、幀間數(shù)據(jù)壓縮技術(shù)
對(duì)于活動(dòng)圖像來(lái)說(shuō),相鄰幀的圖像具有強(qiáng)烈的相關(guān)性。在保存和記錄動(dòng)態(tài)圖像時(shí),不需要將每一幀圖像的全部信息都記錄和保存下來(lái),可以將前面第一幀圖像全部數(shù)據(jù)都記錄下來(lái),把它看成是靜態(tài)圖像,可用靜態(tài)圖像數(shù)據(jù)壓縮方法來(lái)處理。而后面諸幀圖像,可以僅記錄與前面幀圖像有差異的信息。于是,在重放時(shí),利用前面幀圖像的數(shù)據(jù)和后面幀的差異數(shù)據(jù),即可恢復(fù)出后面幀的圖像。這種處理方法省去許多數(shù)據(jù)。
1、三種畫(huà)面
按照MPEG-1標(biāo)準(zhǔn),傳送的活動(dòng)畫(huà)面可分為3種類型。第1種,是場(chǎng)景更換后的第1幀畫(huà)面,它是一種獨(dú)立的畫(huà)面,這種畫(huà)面采用較高清晰度的逐點(diǎn)取樣法進(jìn)行傳送,此畫(huà)面稱為I畫(huà)面(內(nèi)碼幀,或稱幀內(nèi)編碼幀)。該畫(huà)面信息是由自身畫(huà)面決定,不必參考其它畫(huà)面。該畫(huà)面的數(shù)據(jù)代表了活動(dòng)圖像的主體內(nèi)容和背景內(nèi)容,它是電視畫(huà)面的基礎(chǔ)。第2種,是與I畫(huà)面相隔一定時(shí)間、活動(dòng)圖像主體位置在同一背景上已發(fā)生明顯變化的畫(huà)面,此畫(huà)面稱P畫(huà)面(預(yù)測(cè)幀,或稱前向預(yù)測(cè)編碼幀)。該畫(huà)面用前面的I畫(huà)面作為參考畫(huà)面,該畫(huà)面不傳送背景等重復(fù)性信息,僅傳送主體變化的差值,這就省略了一部分細(xì)節(jié)信息,而在重放時(shí)依靠幀存儲(chǔ)器將I畫(huà)面的主要部分和P畫(huà)面的差值進(jìn)行運(yùn)算,即可得出新畫(huà)面的完整內(nèi)容,它是既有背景又有現(xiàn)時(shí)運(yùn)動(dòng)主體狀態(tài)的實(shí)際畫(huà)面。第3種,其情況與P畫(huà)面相似,用來(lái)傳送在I、P畫(huà)面之間的畫(huà)面,稱B畫(huà)面(雙向預(yù)測(cè)幀,或稱雙向預(yù)測(cè)內(nèi)插編碼幀)。該畫(huà)面僅反映在I、P畫(huà)面之間的運(yùn)動(dòng)主體變化情況,并用位移矢量(或稱運(yùn)動(dòng)矢量等)表示畫(huà)面主體移動(dòng)情況。其信息量更小些。因?yàn)樵谥胤潘鼤r(shí),既可參考I畫(huà)面內(nèi)容,也要參考P畫(huà)面內(nèi)容,所以稱為雙向預(yù)測(cè)幀。
將一串連續(xù)相關(guān)的畫(huà)面分為I、P、B型后,傳輸信息量明顯減少。在P、B畫(huà)面當(dāng)中,幾乎不傳送反映實(shí)物的象素,僅傳送其主體移動(dòng)的差值,其具體的處理方法是采用了區(qū)塊對(duì)比的方法,在兩個(gè)變化的畫(huà)面當(dāng)中,將區(qū)塊或宏塊作為處理單元,將一個(gè)畫(huà)面的宏、區(qū)塊與參與 畫(huà)面中鄰近范圍內(nèi)的宏、區(qū)塊進(jìn)行數(shù)值運(yùn)算對(duì)比,尋找與該塊最相近、誤差最小的區(qū)塊,找到近似的該區(qū)塊后,記錄該區(qū)塊在兩個(gè)畫(huà)面中的位移值,即為位移矢量以及反映兩畫(huà)面的差值量。若位移矢量坐標(biāo)變化為0,說(shuō)明該塊沒(méi)有移動(dòng),例如相同的背景景物;若位移矢量值有變化,而區(qū)塊差值為0,則說(shuō)明景物有移動(dòng),而形狀沒(méi)有變化,例如飛行中的球類和奔馳的車輛等??梢?jiàn),位移矢量和區(qū)塊差值可在重放時(shí)依靠參考畫(huà)面得出新畫(huà)面的完整場(chǎng)景,而傳送時(shí)卻省略了背景和主體內(nèi)容,只傳送代表位移矢量和差值的少量數(shù)據(jù),使圖像得到大量壓縮。
2、三種畫(huà)面的連接
通常,更換場(chǎng)景后的第一幀就是I幀,I幀應(yīng)當(dāng)全幀傳送。從壓縮的程度來(lái)看,I畫(huà)面的壓縮量最少;P畫(huà)面次之,它是以I畫(huà)面為基礎(chǔ);B畫(huà)面壓縮最多。為了加大壓縮比,通常在I幀后面相隔2幀(最多3幀)設(shè)置1個(gè)P幀,在I、P幀之間都是B幀,在兩個(gè)P幀之間也是設(shè)置2~3幀B幀。B幀傳送它與I幀或P幀之間的差值信息,或者P幀與后面P幀或I幀之間的差值信息,或者它與前后I、P幀或P、P幀平均值之間的差值信息。當(dāng)主體內(nèi)容變化愈大時(shí),兩個(gè)I畫(huà)面之間的幀數(shù)值越??;當(dāng)主體內(nèi)容變化小時(shí),I面畫(huà)的間隔可以適當(dāng)大一些?;蛘哒f(shuō),B幀、P幀所占比例越大,圖像壓縮比越高。一般兩個(gè)I畫(huà)面相隔13~15幀,相隔幀數(shù)不宜再多。
下面以15幀為例,說(shuō)明VCD圖像幀的排列順序。I、P、B三種畫(huà)面的典型設(shè)置方式,對(duì)NTSC制共約需半秒時(shí)間。節(jié)目輸入順序是按實(shí)際出現(xiàn)順序排列的,即I、B、B、P、B、B、P、B、B……I、B、B、P……;但為了解碼時(shí)便于從I、P畫(huà)面插補(bǔ)得到B畫(huà)面,在編碼錄制節(jié)目時(shí),將順序改變了,即按照I、P、B、B……順序,即改為按原來(lái)0、3、1、2、6、4、5、9、7、8…的畫(huà)面順序。解碼時(shí)先解出0幀、3幀,再由其插補(bǔ)預(yù)測(cè)計(jì)算得出1幀、2幀等等。為此,須在解碼器內(nèi)設(shè)置動(dòng)態(tài)存儲(chǔ)器,將I、P幀先解碼并存儲(chǔ),再計(jì)算出各個(gè)B幀。不過(guò)最后輸出時(shí),還是應(yīng)當(dāng)按照實(shí)際播放順序重組讀出,按正確順序輸出。
VCD采用的幀間壓縮技術(shù)標(biāo)準(zhǔn),對(duì)圖像編碼順序和各幀間隔是有具體規(guī)定的。采用幀壓縮技術(shù)后,各幀之間的信息冗余量大大減少,圖像碼率進(jìn)一步壓縮,壓縮比可達(dá)3-20余倍。
四、圖像壓縮編碼過(guò)程壓縮過(guò)程
1、編碼過(guò)程
這里談?wù)刅CD所采用MPEG-1標(biāo)準(zhǔn)的編碼過(guò)程。因?yàn)橄噜弾?huà)面相同或基本相同,將這種畫(huà)面群的第1幅畫(huà)面作為I畫(huà)面,將它送入編碼器。編碼器首先將它割裂為許多片、宏塊、區(qū)塊等,將各區(qū)塊分割為8×8=64點(diǎn)陣列,再進(jìn)行Z字形描述和DCT變換,將64個(gè)亮度(或色度)取樣數(shù)值變換為64個(gè)DCT系數(shù),再對(duì)64個(gè)系數(shù)值分別進(jìn)行相應(yīng)的量化,經(jīng)量化處理后再進(jìn)行VLC處理,即得到了代表一個(gè)區(qū)塊數(shù)據(jù)的最短的數(shù)碼,至此,完成了該畫(huà)面群第1幀的第1列圖像中第1宏塊的編碼。依次類推,可得到第1幀畫(huà)面的全部壓縮數(shù)據(jù)編碼。原為二維空間的一幀圖像信息已經(jīng)轉(zhuǎn)變?yōu)橐痪S空間的串行數(shù)據(jù),這些數(shù)據(jù)被全部存儲(chǔ)起來(lái),成為繼續(xù)進(jìn)行數(shù)據(jù)處理的基礎(chǔ)。至此,I畫(huà)面數(shù)據(jù)處理完畢。
完成第1幀圖像壓縮編碼后,接著輸入第2幀圖像。編碼器按照相同的方法步驟對(duì)第2幀進(jìn)行壓縮編碼,得到第2幀數(shù)據(jù)。此時(shí),編碼器不再將第2幀數(shù)據(jù)進(jìn)行完整的存儲(chǔ)和傳送,而是將它與第1幀數(shù)據(jù)進(jìn)行比較運(yùn)算。若運(yùn)算中發(fā)現(xiàn),兩幀間數(shù)據(jù)差別很小時(shí),說(shuō)明兩幀圖像差別不大,僅將其差值存入存儲(chǔ)器,而舍掉其大部分重復(fù)數(shù)據(jù)。按照此方法再進(jìn)行第3、第4幀編碼,并進(jìn)行比較運(yùn)算,直到找到某一幀,差別較大且超過(guò)規(guī)定值時(shí),再將此幀數(shù)據(jù)中與第1幀的差別(包括位移矢量和差值)部分存儲(chǔ)起來(lái),并將此幀數(shù)據(jù)排在第1幀(I幀)后面?zhèn)魉统鋈?,該幀就是P畫(huà)面。當(dāng)傳送I、P畫(huà)面后,再傳送3、4幀的差別數(shù)據(jù),這些畫(huà)面都是B畫(huà)面。它們之間的差別不大,是處于I、P之間的畫(huà)面。按照此程序和方法,可再選出許多組P和B畫(huà)面。通常,每隔13~15幀后,再設(shè)置一個(gè)I畫(huà)面,作為后續(xù)畫(huà)面的參考基準(zhǔn)。如遇到較新的場(chǎng)景,將出現(xiàn)一幅不相同的新畫(huà)面,這幅新出現(xiàn)的畫(huà)面也作為I畫(huà)面。
MPEG-1視頻壓縮編碼方框圖 http://www.elecfans.com

圖2.2.3是MPEG-1圖像壓縮編碼器方框圖。代表亮度Y和色度分量CB、CR的二進(jìn)制數(shù)碼



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉