




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 基于PC機(jī)的MPEG-4編碼原理研究及實(shí)現(xiàn) 梁偉偉,李玉山,劉洋 時(shí)間:2010年05月20日 字 體: 大 中 小 關(guān)鍵詞:<"cblue" " target='_blank'>PC機(jī)<"cblue" " MPEG-4編
2、碼" target='_blank'> MPEG-4編碼 0 引言 隨著多媒體業(yè)務(wù)的發(fā)展,日益增長(zhǎng)的多媒體通信量和有限的通信帶寬之間的矛盾日益突出。為了減小傳輸?shù)臄?shù)據(jù)量,國(guó)際電信聯(lián)盟和MPEG標(biāo)準(zhǔn)組織都制定過(guò)各自的視頻壓縮標(biāo)準(zhǔn)。其中,最新MPEG-4標(biāo)準(zhǔn)以其高壓縮率,支持低碼率傳輸和基于對(duì)象
3、編碼等優(yōu)點(diǎn),而在傳真、視頻點(diǎn)播、電視會(huì)議、醫(yī)用圖像傳輸?shù)阮I(lǐng)域廣泛應(yīng)用。 MPEG-4繼承了MPEG-2中檔次和等級(jí)概念,共有視頻檔次、音頻檔次、圖形檔次和場(chǎng)景描述檔次共四類。檔次是針對(duì)某一特定的應(yīng)用而采用的編碼工具,它是MPEG-4提供的工具集中一個(gè)子集,不同的檔次就是不同的子集。每一個(gè)檔次分為一個(gè)或多個(gè)等級(jí),等級(jí)則定義了比特流參數(shù)的規(guī)格,實(shí)際上是限定了解碼一個(gè)編碼序列所應(yīng)具備的性能。 MPEG-
4、4的獨(dú)特之處在于支持基于內(nèi)容的編解碼,為此引入了視聽(tīng)對(duì)象AVO(AudioVIDEO Object)的概念。AVO可以是一幅圖像中一個(gè)小提琴或琴聲等,每個(gè)AVO可獨(dú)立編碼,但相互之間又存在著時(shí)空結(jié)構(gòu)關(guān)系,因此編碼時(shí),必須傳送編碼對(duì)象的組成結(jié)構(gòu)信息體“場(chǎng)景描述”,以表示場(chǎng)景中各AVO之間的時(shí)空結(jié)構(gòu)關(guān)系。解碼時(shí)根據(jù)此“場(chǎng)景描述”對(duì)圖像和聲音的有關(guān)內(nèi)容進(jìn)行編輯和操作。視聽(tīng)對(duì)象還可以是一個(gè)矩形幀,從而使MPEG-4兼容原來(lái)的MPEG標(biāo)準(zhǔn)。視聽(tīng)對(duì)象中的視頻對(duì)象VO通常由3類信息來(lái)描述,即運(yùn)動(dòng)、形狀和紋理信息。 1 編碼原理
5、 <"cblue" " MPEG-4編碼" title=" MPEG-4編碼"> MPEG-4編碼器主要由形狀編碼、紋理編碼和運(yùn)動(dòng)編碼三部分組成。幀格式分為I-VoP,P-VOP和B-VOP。這里只討論I-VOP和P-VOP。I-VOP采用紋理編碼來(lái)消除一幀圖像數(shù)據(jù)間的空間冗余度;P-VOP是參考前一幀圖像,并采用兩種參數(shù)來(lái)編碼。一種是當(dāng)前要編碼的圖像與參考圖像之間的差值;另一種是運(yùn)動(dòng)矢量。編碼器的具體結(jié)構(gòu)模塊如圖1所示。 1.1 形狀編碼
6、160; 形狀編碼主要用于記錄從圖像序列中提取VOP的形狀信息,該信息分為二值形狀信息和灰度形狀信息。二值形狀信息用0和1兩個(gè)值表示VOP的形狀;灰度形狀信息用0255表示VOP區(qū)域的不同透明度。在編碼時(shí),當(dāng)提取的VOP具有非矩形形狀時(shí),需要對(duì)其進(jìn)行邊界擴(kuò)展,使其矩形邊界都是16的倍數(shù),同時(shí)保證擴(kuò)展后的面積最小,然后進(jìn)行形狀編碼;當(dāng)提取的VOP為矩形時(shí)(矩形的長(zhǎng)度和寬度都是16的倍數(shù)),形狀編碼就會(huì)被屏蔽。 1.2 紋理編碼
7、0; 紋理編碼主要對(duì)I-VOP內(nèi)的圖像像素或P-VOP內(nèi)的差值像素進(jìn)行編碼,包括DCT、量化、DC和AC預(yù)測(cè)、熵編碼等過(guò)程,最大程度地去除當(dāng)前VOP內(nèi)各像素之間的空間冗余度。 視頻的第一幀圖像采用I-VOP格式編碼,其余的幀采用I-VOP,還是P-VOP格式則受兩個(gè)因素制約。其用戶會(huì)按照IPPPIPPPI的方式設(shè)置當(dāng)前幀所采用的格式;二是已經(jīng)人為地設(shè)置了當(dāng)前幀為P-VOP,通過(guò)運(yùn)動(dòng)估計(jì)計(jì)算mad_P的值,如果mad_P滿足下列兩個(gè)條件之一,則當(dāng)前幀就采用P-VOP編
8、碼格式,否則采用I-VOP編碼格式。 條件1:mad P<503; 條件2:mad P<50,并且IntraMBRatio<0.4。其中,IntraMBRatio為當(dāng)前幀中采用MBM_INTRA預(yù)測(cè)模式的宏塊占總宏塊的比重。
9、160; 紋理編碼中的DCT和量化模塊比較簡(jiǎn)單,這里略過(guò),重點(diǎn)介紹剩下的紋理編碼模塊。 1.2.1 DC和AC預(yù)測(cè) 8×8塊經(jīng)過(guò)DCT和量化后,系數(shù)排列呈現(xiàn)以下的規(guī)律,即非零系數(shù)集中在左上角,大部分的0系數(shù)集中在偏離DC系數(shù)向右和向下的位置上。特別是DC系數(shù)、第一行和第一列AC系數(shù),數(shù)值非零且較大,如果能用較小的數(shù)值代替它們,會(huì)減少編碼后的位流數(shù),于是產(chǎn)生DC和AC預(yù)測(cè)。
10、60; 在MPEG-4中,通常把一個(gè)宏塊分為6個(gè)8×8塊進(jìn)行DC和AC預(yù)測(cè)。 首先對(duì)8×8塊進(jìn)行DC預(yù)測(cè)。如圖2所示,X表示當(dāng)前的8×8塊;A,B和C表示X的相鄰8×8塊,其位置分別位于X的左邊、左上角和上邊。對(duì)X進(jìn)行DC預(yù)測(cè)就是采用相鄰塊的DC系數(shù)值預(yù)測(cè)X的DC系數(shù)值,關(guān)鍵是選擇哪個(gè)相鄰塊的DC系數(shù)。 程序
11、采用了以下策略選取相鄰塊。定義塊A,B,C,X的DC系數(shù)值分別為DC_A,DC_B,DC_C,DC_X。 如果DC_A與DC_B的差小于DC_B與DC_C的差,則DC_A與DC_B在數(shù)值上比較接近,即在垂直方向上的數(shù)值比水平方向上更接近,所以采用DC_C來(lái)預(yù)測(cè)DC_X;反之,在水平方向的數(shù)值比較接近,即采用DC_A來(lái)預(yù)測(cè)DC_X。 將當(dāng)前塊的DC系數(shù)與用來(lái)預(yù)測(cè)的相鄰塊的DC系數(shù),經(jīng)過(guò)特定處理后做差,其差存放到
12、當(dāng)前塊的DC位置上,同時(shí)記錄此DC系數(shù)的預(yù)測(cè)方向。 AC預(yù)測(cè)主要是針對(duì)8×8塊的第一行或者第一列AC系數(shù),其預(yù)測(cè)方向取決于當(dāng)前塊DC系數(shù)的預(yù)測(cè)方向。如圖2所示,如果之前DC預(yù)測(cè)為水平預(yù)測(cè),則當(dāng)前塊X的第一列AC系數(shù)采用A塊的第一列AC系數(shù)預(yù)測(cè),同時(shí)將X的第一列7個(gè)AC系數(shù)各自取絕對(duì)值后相加到變量S1(S1的初始值為0)上。將當(dāng)前塊第一列AC系數(shù)與用來(lái)預(yù)測(cè)的相鄰塊A的第一列AC系數(shù)做差,其7個(gè)差值存放到當(dāng)前塊的第一列AC系數(shù)的位置上,同時(shí)將7個(gè)差值各自取絕對(duì)值后相加到變量S2(S2的初始值為0
13、)上。如果之前的DC預(yù)測(cè)為垂直預(yù)測(cè),則只進(jìn)行當(dāng)前塊X的第一行AC系數(shù)預(yù)測(cè),其預(yù)測(cè)步驟同第一列AC系數(shù)的預(yù)測(cè)一樣。 有時(shí)AC預(yù)測(cè)會(huì)產(chǎn)生較大的預(yù)測(cè)誤差,并沒(méi)有達(dá)到節(jié)省位流的目的,因此必須判斷AC預(yù)測(cè)的有效性。在單個(gè)8×8小塊的AC預(yù)測(cè)中,用S1記錄了此小塊的第一行或第一列AC系數(shù)的絕對(duì)值之和,用S2記錄了第一行或第一列預(yù)測(cè)后7個(gè)差值的絕對(duì)和。以一個(gè)宏塊的6個(gè)8×8小塊為單位,將各個(gè)小塊的S1與S2之差相加,得到值S。如果S非零,則此宏塊進(jìn)行AC預(yù)測(cè),其標(biāo)志ACpred_flag置1,否
14、則此宏塊不進(jìn)行AC預(yù)測(cè),ACpred_flag置0。 1.2.2 之字型掃描 DC和AC預(yù)測(cè)之后,對(duì)8×8塊的系數(shù)進(jìn)行之字形掃描,共有Zigzag,Zigzag_v(交替垂直掃描)和Zigzag_h(交替水平掃描)三種掃描方式。采用何種掃描方式由三個(gè)要素決定,即幀內(nèi)還是幀間預(yù)測(cè),AC預(yù)測(cè)標(biāo)志ACpred_flag的值,DC系數(shù)的預(yù)測(cè)方向。 &
15、#160;對(duì)于幀內(nèi)預(yù)測(cè)的宏塊,如果AC預(yù)測(cè)標(biāo)志ACpredflag為0,則此宏塊中的6個(gè)8×8塊都使用Zigzag掃描;如果AC預(yù)測(cè)標(biāo)志為1,則此宏塊中的6個(gè)8×8塊將根據(jù)各自的DC預(yù)測(cè)方向決定AC系數(shù)的掃描方向。如果DC預(yù)測(cè)為水平預(yù)測(cè),則此8×8塊使用Zigzag_v掃描方式掃描系數(shù),否則使用Zigzag_h掃描方式。 對(duì)于幀間預(yù)測(cè)的宏塊,其每個(gè)8×8塊統(tǒng)一采用Zigzag掃描方式掃描系數(shù)。
16、; 8×8的系數(shù)矩陣經(jīng)過(guò)之字型掃描后,大部分非零系數(shù)集中在一個(gè)一維數(shù)組的前部,大部分零系數(shù)集中在此一維數(shù)組的后面,根據(jù)此特點(diǎn)便產(chǎn)生了游程編碼。 1.2.3 游程編碼和熵編碼 所謂游程編碼就是對(duì)8×8系數(shù)矩陣的AC系數(shù)進(jìn)行特定的處理,使其成為個(gè)數(shù)更少的三維矢量(Last,Run,Level)。其中,Level代表非0系數(shù)的大小。Run代表Level前面連續(xù)0的個(gè)數(shù)。Last代表終止標(biāo)志:其值為0時(shí),表示
17、Level后還有不為0的系數(shù);其值為1時(shí)表示該系數(shù)是最后不為0的數(shù);余下的系數(shù)全為0。游程編碼生成三維矢量,壓縮了數(shù)據(jù)量,然后根據(jù)Last,Run和Level的不同組合作為索引,找到對(duì)應(yīng)Huffman編碼表中的碼字,生成碼流。 1.3 運(yùn)動(dòng)編碼 運(yùn)動(dòng)編碼對(duì)當(dāng)前P-VOP和參考VOP進(jìn)行運(yùn)動(dòng)估計(jì)與補(bǔ)償,減小幀間的時(shí)間相關(guān)性,實(shí)現(xiàn)壓縮。
18、60; 通常采用塊匹配法進(jìn)行運(yùn)動(dòng)估計(jì)。塊匹配法就是針對(duì)當(dāng)前幀中某一特定大小的圖像塊,從參考幀的一定區(qū)域中找出該圖像塊絕對(duì)誤差和(Sum of AbsoluteDifference,SAD)的最小匹配塊,利用此匹配塊來(lái)預(yù)測(cè)當(dāng)前塊。圖像塊的絕對(duì)誤差和指兩個(gè)大小相同的圖像塊的中像素差的絕對(duì)值之和。SAD16×16函數(shù)實(shí)現(xiàn)當(dāng)前宏塊和參考宏塊間的絕對(duì)誤差和;SAD8×8函數(shù)實(shí)現(xiàn)當(dāng)前8×8塊與參考8×8塊間的絕對(duì)誤差和。
19、60;確定了塊匹配準(zhǔn)則后,就要進(jìn)行最優(yōu)匹配點(diǎn)的搜索,MPEG-4校驗(yàn)?zāi)P妥詈蟛捎勉@石搜索法(Diamond Search,DS)。鉆石搜索法是一種利用搜索模板的形狀和大小,對(duì)運(yùn)動(dòng)估計(jì)算法速度及精度產(chǎn)生重要影響的快速搜索法。選用了兩種形狀和大小都不相同的搜索模板:一種是大鉆石搜索模板(Large DiamondSearch Pattern,LDSP),它有9個(gè)候選位置:(0,0),(0,2),(1,1),(2,0),(1,-1),(0,-2),(-1,-1),(-2,0)和(-1,1)。具體模板如圖3所示。一種是小鉆石搜索模板(Small Diamond SearchPattern,SDSP),
20、它包含5個(gè)候選位置:(0,0),(0,1),(1,0),(0,-1)和(-1,0)。具體模板如圖4所示。 鉆石搜索過(guò)程如下:以當(dāng)前幀的當(dāng)前宏塊的左上角起點(diǎn)坐標(biāo)為大模板的原點(diǎn)(0,0),在參考幀的搜索范圍內(nèi),分別以大
21、模板的(0,0),(0,2),(1,1),(2,0),(1,-1),(0,-2),(-1,-1),(-2,0)和(-1,1)像素點(diǎn)作為宏塊的左上角起點(diǎn),將該宏塊和當(dāng)前幀的宏塊做SAD16×16運(yùn)算,選擇SAD16×16值最小的左上角起點(diǎn)作為暫時(shí)的最佳匹配點(diǎn),此點(diǎn)與當(dāng)前宏塊左上角起點(diǎn)之間的位移就是運(yùn)動(dòng)矢量。判斷此運(yùn)動(dòng)矢量是否適合特定的規(guī)則,如果不適合,則進(jìn)行新一輪的大鉆石模板搜索,直到找到適合條件的運(yùn)動(dòng)矢量。然后再以大鉆石模板搜索的最佳匹配點(diǎn)為中心點(diǎn)(0,0),用小鉆石搜索模板進(jìn)行(0,1),(1,0),(0,-1)和(-1,0)四個(gè)參考點(diǎn)的精確搜索,搜索到的SAD16
22、15;16值最小點(diǎn)就是最終的最佳匹配點(diǎn),最佳匹配點(diǎn)與當(dāng)前宏塊的左上角起點(diǎn)之間的位移就是最終的運(yùn)動(dòng)矢量。 以上是基于宏塊的全像素搜索,還可以選擇是否進(jìn)行基于8×8塊的全像素搜索。利用已經(jīng)得到的基于宏塊的運(yùn)動(dòng)矢量,找到基于宏塊的最佳匹配點(diǎn)。此匹配點(diǎn)為中心(0,0),其他匹配點(diǎn)為(-1,-1),(0,-1),(1,-1),(-1,0),(1,0),(-1,1),(0,1),(1,1),分別以這9個(gè)匹配點(diǎn)作為8×8像素塊的左上角起點(diǎn),將該8×8塊和當(dāng)前幀的8×8塊做絕對(duì)
23、差值和的運(yùn)算,選擇SAD8×8值最小的左上角起點(diǎn)作為最佳匹配點(diǎn),以找到最佳運(yùn)動(dòng)矢量,得到宏塊內(nèi)每個(gè)8×8亮度塊的運(yùn)動(dòng)矢量和SAD8×8值。將4個(gè)SAD8×8的和與SAD16×16做比較,將較小值按照一定的規(guī)則處理,從而判斷當(dāng)前宏塊的預(yù)測(cè)模式為幀內(nèi)或幀間預(yù)測(cè)。 如果采用幀間預(yù)測(cè),進(jìn)一步采用半像素搜索。首先對(duì)整個(gè)參考幀進(jìn)行雙線性差值,則參考幀的面積變?yōu)樵瓉?lái)的4倍,然后在特定的搜索范圍內(nèi)搜索出更精確的運(yùn)動(dòng)矢量,最后根據(jù)參考圖像的亮度信息、色度信息和運(yùn)動(dòng)矢量做
24、運(yùn)動(dòng)補(bǔ)償。 如果采用幀內(nèi)預(yù)測(cè),不再對(duì)當(dāng)前宏塊進(jìn)行任何運(yùn)動(dòng)估計(jì),相應(yīng)運(yùn)動(dòng)補(bǔ)償后的參考宏塊數(shù)值為0。 最后用當(dāng)前幀減去運(yùn)動(dòng)補(bǔ)償后參考圖像得到差值,將差值數(shù)據(jù)進(jìn)行紋理編碼;對(duì)每個(gè)宏塊的運(yùn)動(dòng)矢量進(jìn)行預(yù)測(cè)并求出差分值,對(duì)差分值進(jìn)行位流轉(zhuǎn)換并輸出。 2 編碼器的實(shí)現(xiàn)和測(cè)試 根據(jù)圖1并結(jié)合MPEG-4編碼器各個(gè)模塊的實(shí)現(xiàn)原理,進(jìn)行編碼器主函數(shù)的編寫和調(diào)試。初步確定編碼器的主函數(shù)應(yīng)包括以下三部分: 初始化部分由于參考代碼中存在RGB到Y(jié)UV的圖像格式轉(zhuǎn)換函數(shù)(本文未介紹),則應(yīng)開(kāi)辟相應(yīng)的存儲(chǔ)BMP和YUV圖像的空間;還要開(kāi)辟空間存放編碼器生成的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 副井提升機(jī)安裝施工組織設(shè)計(jì)
- 2025年房地產(chǎn)估價(jià)師考試題目及答案
- 2025年地理教師資格證考試卷及答案
- 2025年電子商務(wù)法專業(yè)考試試卷及答案
- 2025年茶藝與茶文化考試試題及答案
- 產(chǎn)婦產(chǎn)后心理護(hù)理
- 中醫(yī)理療健康養(yǎng)生動(dòng)態(tài)
- 房屋租賃合同
- 工程化學(xué)材料應(yīng)用工藝實(shí)踐試卷
- 2025年寧波教練員從業(yè)資格考試題庫(kù)
- 《冰川地貌》課件
- 2024年10月自考00882學(xué)前教育心理學(xué)試題及答案含評(píng)分參考
- 廣東省廣州市2024年中考道德與法治試卷(含答案)
- 2024-2030年中國(guó)orc發(fā)電行業(yè)發(fā)展?fàn)顩r規(guī)劃研究報(bào)告版
- 新教材教科版2022-2023學(xué)年度第二學(xué)期五年級(jí)科學(xué)下冊(cè)期末測(cè)試卷及答案(含三套題)
- 2024年可行性研究報(bào)告投資估算及財(cái)務(wù)分析全套計(jì)算表格(含附表-帶只更改標(biāo)紅部分-操作簡(jiǎn)單)
- 湘美版小學(xué)二年級(jí)下冊(cè)美術(shù)全冊(cè)教案
- 電線電纜廠材料倉(cāng)庫(kù)管理制度
- 混凝土襯砌(二襯)專項(xiàng)施工方案
- DB64-T 1999.1-2024 國(guó)土空間生態(tài)修復(fù)工程建設(shè)標(biāo)準(zhǔn) 第1部分:國(guó)土整治
- 湖北省黃岡市黃州區(qū)2023-2024學(xué)年六年級(jí)下學(xué)期期末考試英語(yǔ)試題
評(píng)論
0/150
提交評(píng)論