當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]日益增長的多媒體通信量和有限的通信帶寬之間的矛盾日益突出。為了減小傳輸?shù)臄?shù)據(jù)量,國際電信聯(lián)盟和MPEG標(biāo)準(zhǔn)組織都制定過各自的視頻壓縮標(biāo)準(zhǔn)。其中,最新MPEG-4標(biāo)準(zhǔn)以其高壓縮率,支持低碼率傳輸和基于對象編碼等優(yōu)

日益增長的多媒體通信量和有限的通信帶寬之間的矛盾日益突出。為了減小傳輸?shù)臄?shù)據(jù)量,國際電信聯(lián)盟和MPEG標(biāo)準(zhǔn)組織都制定過各自的視頻壓縮標(biāo)準(zhǔn)。其中,最新MPEG-4標(biāo)準(zhǔn)以其高壓縮率,支持低碼率傳輸和基于對象編碼等優(yōu)點,而在傳真、視頻點播、電視會議、醫(yī)用圖像傳輸?shù)阮I(lǐng)域廣泛應(yīng)用。

MPEG-4繼承了MPEG-2中檔次和等級概念,共有視頻檔次、音頻檔次、圖形檔次和場景描述檔次共四類。檔次是針對某一特定的應(yīng)用而采用的編碼工具,它是MPEG-4提供的工具集中一個子集,不同的檔次就是不同的子集。每一個檔次分為一個或多個等級,等級則定義了比特流參數(shù)的規(guī)格,實際上是限定了解碼一個編碼序列所應(yīng)具備的性能。

MPEG-4的獨特之處在于支持基于內(nèi)容的編解碼,為此引入了視聽對象AVO(Audio/Video Object)的概念。AVO可以是一幅圖像中一個小提琴或琴聲等,每個AVO可獨立編碼,但相互之間又存在著時空結(jié)構(gòu)關(guān)系,因此編碼時,必須傳送編碼對象的組成結(jié)構(gòu)信息體“場景描述”,以表示場景中各AVO之間的時空結(jié)構(gòu)關(guān)系。解碼時根據(jù)此“場景描述”對圖像和聲音的有關(guān)內(nèi)容進行編輯和操作。視聽對象還可以是一個矩形幀,從而使MPEG-4兼容原來的MPEG標(biāo)準(zhǔn)。視聽對象中的視頻對象VO通常由3類信息來描述,即運動、形狀和紋理信息。

1 編碼原理

MPEG-4編碼器主要由形狀編碼、紋理編碼和運動編碼三部分組成。幀格式分為I-VoP,P-VOP和B-VOP。這里只討論I-VOP和P-VOP。I-VOP采用紋理編碼來消除一幀圖像數(shù)據(jù)間的空間冗余度;P-VOP是參考前一幀圖像,并采用兩種參數(shù)來編碼。一種是當(dāng)前要編碼的圖像與參考圖像之間的差值;另一種是運動矢量。編碼器的具體結(jié)構(gòu)模塊如圖1所示。


1.1 形狀編碼

形狀編碼主要用于記錄從圖像序列中提取VOP的形狀信息,該信息分為二值形狀信息和灰度形狀信息。二值形狀信息用0和1兩個值表示VOP的形狀;灰度形狀信息用0~255表示VOP區(qū)域的不同透明度。在編碼時,當(dāng)提取的VOP具有非矩形形狀時,需要對其進行邊界擴展,使其矩形邊界都是16的倍數(shù),同時保證擴展后的面積最小,然后進行形狀編碼;當(dāng)提取的VOP為矩形時(矩形的長度和寬度都是16的倍數(shù)),形狀編碼就會被屏蔽。

1.2 紋理編碼

紋理編碼主要對I-VOP內(nèi)的圖像像素或P-VOP內(nèi)的差值像素進行編碼,包括DCT、量化、DC和AC預(yù)測、熵編碼等過程,最大程度地去除當(dāng)前VOP內(nèi)各像素之間的空間冗余度。

視頻的第一幀圖像采用I-VOP格式編碼,其余的幀采用I-VOP,還是P-VOP格式則受兩個因素制約。其用戶會按照IPPPIPPPI的方式設(shè)置當(dāng)前幀所采用的格式;二是已經(jīng)人為地設(shè)置了當(dāng)前幀為P-VOP,通過運動估計計算mad_P的值,如果mad_P滿足下列兩個條件之一,則當(dāng)前幀就采用P-VOP編碼格式,否則采用I-VOP編碼格式。

條件1:mad P<50/3;

條件2:mad P<50,并且IntraMBRatio<0.4。其中,IntraMBRatio為當(dāng)前幀中采用MBM_INTRA預(yù)測模式的宏塊占總宏塊的比重。

紋理編碼中的DCT和量化模塊比較簡單,這里略過,重點介紹剩下的紋理編碼模塊。

1.2.1 DC和AC預(yù)測

8×8塊經(jīng)過DCT和量化后,系數(shù)排列呈現(xiàn)以下的規(guī)律,即非零系數(shù)集中在左上角,大部分的0系數(shù)集中在偏離DC系數(shù)向右和向下的位置上。特別是DC系數(shù)、第一行和第一列AC系數(shù),數(shù)值非零且較大,如果能用較小的數(shù)值代替它們,會減少編碼后的位流數(shù),于是產(chǎn)生DC和AC預(yù)測。

在MPEG-4中,通常把一個宏塊分為6個8×8塊進行DC和AC預(yù)測。

首先對8×8塊進行DC預(yù)測。如圖2所示,X表示當(dāng)前的8×8塊;A,B和C表示X的相鄰8×8塊,其位置分別位于X的左邊、左上角和上邊。對X進行DC預(yù)測就是采用相鄰塊的DC系數(shù)值預(yù)測X的DC系數(shù)值,關(guān)鍵是選擇哪個相鄰塊的DC系數(shù)。

[!--empirenews.page--]

程序采用了以下策略選取相鄰塊。定義塊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來預(yù)測DC_X;反之,在水平方向的數(shù)值比較接近,即采用DC_A來預(yù)測DC_X。

將當(dāng)前塊的DC系數(shù)與用來預(yù)測的相鄰塊的DC系數(shù),經(jīng)過特定處理后做差,其差存放到當(dāng)前塊的DC位置上,同時記錄此DC系數(shù)的預(yù)測方向。

AC預(yù)測主要是針對8×8塊的第一行或者第一列AC系數(shù),其預(yù)測方向取決于當(dāng)前塊DC系數(shù)的預(yù)測方向。如圖2所示,如果之前DC預(yù)測為水平預(yù)測,則當(dāng)前塊X的第一列AC系數(shù)采用A塊的第一列AC系數(shù)預(yù)測,同時將X的第一列7個AC系數(shù)各自取絕對值后相加到變量S1(S1的初始值為0)上。將當(dāng)前塊第一列AC系數(shù)與用來預(yù)測的相鄰塊A的第一列AC系數(shù)做差,其7個差值存放到當(dāng)前塊的第一列AC系數(shù)的位置上,同時將7個差值各自取絕對值后相加到變量S2(S2的初始值為0)上。如果之前的DC預(yù)測為垂直預(yù)測,則只進行當(dāng)前塊X的第一行AC系數(shù)預(yù)測,其預(yù)測步驟同第一列AC系數(shù)的預(yù)測一樣。

有時AC預(yù)測會產(chǎn)生較大的預(yù)測誤差,并沒有達到節(jié)省位流的目的,因此必須判斷AC預(yù)測的有效性。在單個8×8小塊的AC預(yù)測中,用S1記錄了此小塊的第一行或第一列AC系數(shù)的絕對值之和,用S2記錄了第一行或第一列預(yù)測后7個差值的絕對和。以一個宏塊的6個8×8小塊為單位,將各個小塊的S1與S2之差相加,得到值S。如果S非零,則此宏塊進行AC預(yù)測,其標(biāo)志ACpred_flag置1,否則此宏塊不進行AC預(yù)測,ACpred_flag置0。

1.2.2 之字型掃描

DC和AC預(yù)測之后,對8×8塊的系數(shù)進行之字形掃描,共有Zigzag,Zigzag_v(交替垂直掃描)和Zigzag_h(交替水平掃描)三種掃描方式。采用何種掃描方式由三個要素決定,即幀內(nèi)還是幀間預(yù)測,AC預(yù)測標(biāo)志ACpred_flag的值,DC系數(shù)的預(yù)測方向。

對于幀內(nèi)預(yù)測的宏塊,如果AC預(yù)測標(biāo)志ACpredflag為0,則此宏塊中的6個8×8塊都使用Zigzag掃描;如果AC預(yù)測標(biāo)志為1,則此宏塊中的6個8×8塊將根據(jù)各自的DC預(yù)測方向決定AC系數(shù)的掃描方向。如果DC預(yù)測為水平預(yù)測,則此8×8塊使用Zigzag_v掃描方式掃描系數(shù),否則使用Zigzag_h掃描方式。

對于幀間預(yù)測的宏塊,其每個8×8塊統(tǒng)一采用Zigzag掃描方式掃描系數(shù)。

8×8的系數(shù)矩陣經(jīng)過之字型掃描后,大部分非零系數(shù)集中在一個一維數(shù)組的前部,大部分零系數(shù)集中在此一維數(shù)組的后面,根據(jù)此特點便產(chǎn)生了游程編碼。

1.2.3 游程編碼和熵編碼

所謂游程編碼就是對8×8系數(shù)矩陣的AC系數(shù)進行特定的處理,使其成為個數(shù)更少的三維矢量(Last,Run,Level)。其中,Level代表非0系數(shù)的大小。Run代表Level前面連續(xù)0的個數(shù)。Last代表終止標(biāo)志:其值為0時,表示Level后還有不為0的系數(shù);其值為1時表示該系數(shù)是最后不為0的數(shù);余下的系數(shù)全為0。游程編碼生成三維矢量,壓縮了數(shù)據(jù)量,然后根據(jù)Last,Run和Level的不同組合作為索引,找到對應(yīng)Huffman編碼表中的碼字,生成碼流。
[!--empirenews.page--]

1.3 運動編碼

運動編碼對當(dāng)前P-VOP和參考VOP進行運動估計與補償,減小幀間的時間相關(guān)性,實現(xiàn)壓縮。

通常采用塊匹配法進行運動估計。塊匹配法就是針對當(dāng)前幀中某一特定大小的圖像塊,從參考幀的一定區(qū)域中找出該圖像塊絕對誤差和(Sum of AbsoluteDifference,SAD)的最小匹配塊,利用此匹配塊來預(yù)測當(dāng)前塊。圖像塊的絕對誤差和指兩個大小相同的圖像塊的中像素差的絕對值之和。SAD16×16函數(shù)實現(xiàn)當(dāng)前宏塊和參考宏塊間的絕對誤差和;SAD8×8函數(shù)實現(xiàn)當(dāng)前8×8塊與參考8×8塊間的絕對誤差和。

確定了塊匹配準(zhǔn)則后,就要進行最優(yōu)匹配點的搜索,MPEG-4校驗?zāi)P妥詈蟛捎勉@石搜索法(Diamond Search,DS)。鉆石搜索法是一種利用搜索模板的形狀和大小,對運動估計算法速度及精度產(chǎn)生重要影響的快速搜索法。選用了兩種形狀和大小都不相同的搜索模板:一種是大鉆石搜索模板(Large DiamondSearch Pattern,LDSP),它有9個候選位置:(0,0),(0,2),(1,1),(2,0),(1,-1),(0,-2),(-1,-1),(-2,0)和(-1,1)。具體模板如圖3所示。一種是小鉆石搜索模板(Small Diamond Search Pattern,SDSP),它包含5個候選位置:(0,0),(0,1),(1,0),(0,-1)和(-1,0)。具體模板如圖4所示。



鉆石搜索過程如下:以當(dāng)前幀的當(dāng)前宏塊的左上角起點坐標(biāo)為大模板的原點(0,0),在參考幀的搜索范圍內(nèi),分別以大模板的(0,0),(0,2),(1,1),(2,0),(1,-1),(0,-2),(-1,-1),(-2,0)和(-1,1)像素點作為宏塊的左上角起點,將該宏塊和當(dāng)前幀的宏塊做SAD16×16運算,選擇SAD16×16值最小的左上角起點作為暫時的最佳匹配點,此點與當(dāng)前宏塊左上角起點之間的位移就是運動矢量。判斷此運動矢量是否適合特定的規(guī)則,如果不適合,則進行新一輪的大鉆石模板搜索,直到找到適合條件的運動矢量。然后再以大鉆石模板搜索的最佳匹配點為中心點(0,0),用小鉆石搜索模板進行(0,1),(1,0),(0,-1)和(-1,0)四個參考點的精確搜索,搜索到的SAD16×16值最小點就是最終的最佳匹配點,最佳匹配點與當(dāng)前宏塊的左上角起點之間的位移就是最終的運動矢量。

以上是基于宏塊的全像素搜索,還可以選擇是否進行基于8×8塊的全像素搜索。利用已經(jīng)得到的基于宏塊的運動矢量,找到基于宏塊的最佳匹配點。此匹配點為中心(0,0),其他匹配點為(-1,-1),(0,-1),(1,-1),(-1,0),(1,0),(-1,1),(0,1),(1,1),分別以這9個匹配點作為8×8像素塊的左上角起點,將該8×8塊和當(dāng)前幀的8×8塊做絕對差值和的運算,選擇SAD8×8值最小的左上角起點作為最佳匹配點,以找到最佳運動矢量,得到宏塊內(nèi)每個8×8亮度塊的運動矢量和SAD8×8值。將4個SAD8×8的和與SAD16×16做比較,將較小值按照一定的規(guī)則處理,從而判斷當(dāng)前宏塊的預(yù)測模式為幀內(nèi)或幀間預(yù)測。

如果采用幀間預(yù)測,進一步采用半像素搜索。首先對整個參考幀進行雙線性差值,則參考幀的面積變?yōu)樵瓉淼?倍,然后在特定的搜索范圍內(nèi)搜索出更精確的運動矢量,最后根據(jù)參考圖像的亮度信息、色度信息和運動矢量做運動補償。

如果采用幀內(nèi)預(yù)測,不再對當(dāng)前宏塊進行任何運動估計,相應(yīng)運動補償后的參考宏塊數(shù)值為0。

最后用當(dāng)前幀減去運動補償后參考圖像得到差值,將差值數(shù)據(jù)進行紋理編碼;對每個宏塊的運動矢量進行預(yù)測并求出差分值,對差分值進行位流轉(zhuǎn)換并輸出。

2 編碼器的實現(xiàn)和測試

根據(jù)圖1并結(jié)合MPEG-4編碼器各個模塊的實現(xiàn)原理,進行編碼器主函數(shù)的編寫和調(diào)試。初步確定編碼器的主函數(shù)應(yīng)包括以下三部分:

初始化部分由于參考代碼中存在RGB到Y(jié)UV的圖像格式轉(zhuǎn)換函數(shù)(本文未介紹),則應(yīng)開辟相應(yīng)的存儲BMP和YUV圖像的空間;還要開辟空間存放編碼器生成的壓縮文件;必須設(shè)置編碼器的編碼參數(shù)。

編碼處理部分此部分是通過循環(huán)編碼各幀圖像來實現(xiàn)的,讀入一幀圖像后,判斷是采用I幀還是P幀,然后輸出VOP頭信息,進行當(dāng)前VOP的編碼并輸出位流信息到緩沖器中,最后利用fwrite函數(shù)形成磁盤文件。

釋放資源前面兩個階段開辟的內(nèi)存空間必須釋放掉,整個視頻的編碼過程結(jié)束。

結(jié)合參考的編碼主函數(shù),調(diào)試并運行編碼器,生成divx文件,相應(yīng)地調(diào)試出解碼器。逐一更改編碼器的量化參數(shù)QP、幀率、輸出碼率和I幀間隔參數(shù),測試出它們對編碼效果的影響,如量化參數(shù)QP、幀率和I幀間隔參數(shù)與壓縮比成正比,輸出碼率與壓縮比成反比。經(jīng)過綜合測試,在保證解碼圖像質(zhì)量的前提下,當(dāng)QP為8,幀率為30 f/s,輸出碼率為400 000 b/s,I幀間隔為3時,壓縮比為58.8,此時達到最好的壓縮效果。當(dāng)然,如果對解壓后的視覺效果要求不高的話,壓縮倍數(shù)還可以繼續(xù)提高。

3 結(jié)語

所講的MPEG-4是MPEG-4標(biāo)準(zhǔn)的Part2部分,其編解碼器已經(jīng)獲得了許多廠商的支持。目前,作為MPEG-4 Part10的H.264也已經(jīng)推出并發(fā)展,相比MPEG-4 Part2,H.264在同樣質(zhì)量下,其碼率能降低50%左右,說明MPEG-4一直在發(fā)展。隨著基于內(nèi)容的編碼技術(shù)的實用化發(fā)展,MPEG-4將有更為廣泛的應(yīng)用前景。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉