視頻壓縮基本原理完全講解
來源:太平洋安防網(wǎng) 編輯:QQ123 2021-06-02 09:07:45 加入收藏
視頻編解碼器
在壓縮過程中,需要應(yīng)用壓縮算法對源視頻進(jìn)行壓縮以創(chuàng)建壓縮文件,以便進(jìn)行傳輸和存儲。要想播放壓縮文件,則需要應(yīng)用相反的解壓縮算法對視頻進(jìn)行還原,還原后的視頻內(nèi)容與原始的源視頻內(nèi)容幾乎完全相同。文件壓縮、傳送、解壓和顯示所需的時間稱為時延。壓縮算法越高級,時延就越長。
視頻編解碼器(編碼器/解碼器)是指兩個協(xié)同運(yùn)行的壓縮-解壓算法。使用不同標(biāo)準(zhǔn)的視頻編解碼器通常彼此之間互不兼容;也就是說,使用一種標(biāo)準(zhǔn)進(jìn)行壓縮的視頻內(nèi)容無法使用另外一種標(biāo)準(zhǔn)進(jìn)行解壓縮。例如,MPEG-4 Part 2解碼器就不能與H.264編碼器協(xié)同運(yùn)行。
這是因?yàn)橐环N算法無法正確地對另外一個算法的輸出信號進(jìn)行解碼,然而我們可以在同一軟件或硬件中使用多種不同的算法,實(shí)現(xiàn)多種格式共存。
圖像壓縮與視頻壓縮
由于不同的視頻壓縮標(biāo)準(zhǔn)會使用不同的方法來減少數(shù)據(jù)量,因此壓縮結(jié)果在比特率、質(zhì)量和時延方面也各不相同。
圖像壓縮采用幀內(nèi)編碼技術(shù)。這種技術(shù)通過刪除肉眼看不到的無關(guān)信息,僅壓縮一幀圖像內(nèi)的數(shù)據(jù)。M-JPEG是這種壓縮標(biāo)準(zhǔn)的一個例子。M-JPEG序列中的圖像按單個JPEG圖像進(jìn)行編碼或壓縮。
視頻壓縮算法,如MPEG-4和H.264等,采用幀內(nèi)預(yù)測模式壓縮一系列幀之間的數(shù)據(jù)。這種算法涉及多種技術(shù),如差分編碼,一幀與參考幀進(jìn)行比較,僅編碼相對于參考幀發(fā)生變化的像素。這種方法減少了編碼和發(fā)送的像素值數(shù)量。這種順序編碼的圖像以原有視頻順序顯示。
對差分編碼(包括H.264在內(nèi)的大多數(shù)視頻壓縮標(biāo)準(zhǔn)都采用這種方法)來說,只有第一個圖像(I幀)是將全幀圖像信息進(jìn)行編碼。在后面的兩個圖像(P幀)中,其靜態(tài)部分(即房子)將參考第一個圖像,而僅對運(yùn)動部分(即正在跑步的人)使用運(yùn)動矢量進(jìn)行編碼,從而減少發(fā)送和存儲的信息量。
其他技術(shù),如基于塊的運(yùn)動補(bǔ)償可用來進(jìn)一步減少數(shù)據(jù)?;趬K的運(yùn)動補(bǔ)償考慮到視頻序列中構(gòu)成新幀的大量信息都可以在前面的幀中找到,但可能會在不同的位置上。
所以,這種技術(shù)將一個幀分為一系列的宏塊(像素塊)。然后,通過在參考幀中查找匹配塊的方式,逐個塊地構(gòu)建或者“預(yù)測”一個新幀。如果發(fā)現(xiàn)匹配的塊,編碼器只需要對參考幀中發(fā)現(xiàn)匹配塊的位置進(jìn)行編碼。從名稱可以看出,與對塊的實(shí)際內(nèi)容進(jìn)行編碼相比,只對運(yùn)動矢量進(jìn)行編碼可以減少所占用的數(shù)據(jù)位。
采用幀間預(yù)測編碼幀時,將會把圖像序列中的幀劃分為不同類型的幀,如I幀、P幀或B幀。
I幀(幀內(nèi)編碼幀)是一種自帶全部信息的獨(dú)立幀,無需參考其它圖像便可獨(dú)立進(jìn)行解碼。視頻序列中的第一個幀始終都是I幀。如果所傳輸?shù)谋忍亓髟獾狡茐模瑒t需要將I幀用作新查看器的起始點(diǎn)或重新同步點(diǎn)。I幀可以用來實(shí)現(xiàn)快進(jìn)、快退以及其它隨機(jī)訪問功能。
如果新的客戶端將參與查看視頻流,編碼器將以相同的時間間隔或者根據(jù)要求自動插入I幀。I幀的缺點(diǎn)在于它們會占用更多的數(shù)據(jù)位,但從另一方面看,I幀不會因丟失數(shù)據(jù)而產(chǎn)生可覺察的模糊現(xiàn)象。
P幀(幀間預(yù)測編碼幀)需要參考前面的I幀和/或P幀的不同部分才能進(jìn)行編碼。與I幀相比,P幀通常占用更少的數(shù)據(jù)位,但其缺點(diǎn)是,由于P幀對前面的P和I參考幀有著復(fù)雜的依賴性,因此對傳輸錯誤非常敏感。
B幀(雙向預(yù)測編碼幀)需要同時以前面的幀和后面的幀作為參考幀。采用B幀會加大時延。
當(dāng)視頻解碼器逐個幀地對比特流進(jìn)行解碼以便重構(gòu)視頻時,必須始終從I幀開始解碼。如果使用了P幀和B幀,則必須與參考幀一起解碼。
安訊士網(wǎng)絡(luò)視頻產(chǎn)品允許用戶設(shè)置GOV(視頻組)長度,用以確定發(fā)送另一I幀之前需要發(fā)送多少P幀。降低I幀的頻率(延長GOV),可降低比特率。若要縮短時延,則不使用B幀。
除差分編碼和運(yùn)動補(bǔ)償外,還可以采用其他先進(jìn)方法減少數(shù)據(jù)量,提高視頻質(zhì)量。例如,H.264支持各種高級技術(shù),從用于I幀編碼的預(yù)測機(jī)制、改進(jìn)運(yùn)動補(bǔ)償?shù)絹喯袼鼐?、環(huán)內(nèi)去塊效應(yīng)濾波器直至平滑塊邊緣(模糊現(xiàn)象)等。
評論comment