TMS320C6201在MPEG-4視頻解碼器中的應(yīng)用
引言
隨著網(wǎng)絡(luò)和多媒體技術(shù)的發(fā)展,視覺(jué)通信的重要性和需求急劇增加,如桌面視頻會(huì)議、移動(dòng)終端、基于因特網(wǎng)的視音頻通信等。隨之而來(lái)的是視頻壓縮技術(shù)的迅速發(fā)展和視頻壓縮標(biāo)準(zhǔn)的不斷推出。國(guó)際運(yùn)動(dòng)圖像編碼專家組(MPEG)先后推出了MPEG-1、MPEG-2和MPEG-4.MPEG-4是由國(guó)際運(yùn)動(dòng)圖像專家組于1998年11月制定的。它是一個(gè)面向多媒體應(yīng)用的壓縮標(biāo)準(zhǔn),其應(yīng)用覆蓋范圍遠(yuǎn)大于MPEG-1和MPEG-2等標(biāo)準(zhǔn)。從移動(dòng)可視電話到專業(yè)視頻編輯,既支持自然圖像,也支持計(jì)算機(jī)合成圖像。最重要的是它支持交互功能。這是由于MPEG-4采用了與其它標(biāo)準(zhǔn)不同的、基于對(duì)象的圖像描述方式。目前,國(guó)內(nèi)有關(guān)MPEG-4應(yīng)用技術(shù)的研究及開(kāi)發(fā)的工作正在悄然興起。筆者在研究了MPEG-4視頻標(biāo)準(zhǔn)之后,充分利用TMS320C6201的硬件資源和軟件優(yōu)化,實(shí)時(shí)實(shí)現(xiàn)了嵌入式MPEG-4視頻解碼器。
1 MPEG-4視頻碼流及主要算法
MPEG-4采用了基于對(duì)象的壓縮編碼技術(shù)。在編碼前,首先要對(duì)視頻序列進(jìn)行分析,從原理圖像中分割出各個(gè)視頻對(duì)象,然后南分別對(duì)每個(gè)視頻對(duì)象單獨(dú)編碼。每個(gè)對(duì)象都有自己的形狀信息(shape)、運(yùn)動(dòng)信息(motion)、紋理信息(texture)。對(duì)視頻對(duì)象的編碼就是對(duì)這3種信息進(jìn)行編碼。MPEG-4通過(guò)運(yùn)動(dòng)預(yù)測(cè)和運(yùn)行補(bǔ)償來(lái)去除連續(xù)幀之間的時(shí)間冗余。運(yùn)動(dòng)預(yù)測(cè)與運(yùn)動(dòng)補(bǔ)償?shù)木瓤梢詾檎袼?、半像素?/4像素,另外還增了重疊運(yùn)動(dòng)補(bǔ)償方式。與形狀相關(guān)算法有:基于鄰近信息的算術(shù)編碼、水平和垂直填補(bǔ)、擴(kuò)張?zhí)钛a(bǔ)等。與紋理編碼相關(guān)的算法有:離散余弦變換(DCT)、量化、DCT系數(shù)的DC/AC差分預(yù)測(cè)、Zig-Zag掃描、游程編碼、霍夫曼變長(zhǎng)編碼等。
筆者實(shí)現(xiàn)的是MPEG-4的SVP(Simple Visual Profile)視頻解碼。視頻序列全部為矩形,所以不存在任意形狀編碼。視頻序列按照視頻對(duì)象層VOL(Video Object Layer)、視頻對(duì)象平臺(tái)VOP(Video Object Plane)、宏塊MB(Macro Block)視順序編成一串碼流。1個(gè)VOL中包含多個(gè)VOP,1個(gè)VOP中包含多個(gè)MB。MB是碼流中的基本單位。MB又分為幀內(nèi)MB(intraMB)、幀間MB(imterMB)。幀間4VMB(inter4VMB)等幾種。在I-VOP中,所有的宏塊都是intraMB。P-VOP中宏塊有多種可能,可以是intraMB、interMB或inter4VMB。P-VOP中的interMB或inter4VMB的碼流描述如下:
MB碼流=MB形狀+MB頭信息+MV+DCT紋理信息(Y1+Y2+Y3+Y4+U+V)由于是矩形幀,所以無(wú)形狀編碼MB shape部分。
MB頭信息中主要包括4個(gè)參數(shù):not_coded(本MB是否編碼的標(biāo)志位)、mcbpc(色度塊U和V是否編碼的標(biāo)志位)、cbpy(亮度塊Y1~Y4是否編碼的標(biāo)志位)、dquant(本MB中DCT系數(shù)量化步長(zhǎng)的增量值)。
MV為運(yùn)動(dòng)矢量,實(shí)際寫入碼流的是運(yùn)動(dòng)矢量誤差值(ΔMV),這是因?yàn)榫幋a中MV采用差分編碼。如果MB是一個(gè)interMB,則表示本MB只有1個(gè)運(yùn)動(dòng)矢量,所以在碼流中只傳1個(gè)ΔMV;如果MB是一個(gè)inter4VMB,則表示本MB有4個(gè)運(yùn)行矢量,即每個(gè)子塊(block)有1個(gè)運(yùn)動(dòng)矢量,所以在碼流中需傳送4個(gè)ΔMV,即mvd1、mvd2、mvd3和mvd4。
最后是一連串經(jīng)過(guò)量化、Zig-Zag掃描、游程編碼和霍夫曼變長(zhǎng)編碼的DCT系數(shù),按照Y1、Y2、Y3、Y4、U和V的先后順序編碼。
{{分頁(yè)}}
2 TMS320C6201 DSP及EVM板介紹
2.1 TMS320C6201 DSP
TMS320C6201是美國(guó)TI公司的C6000系列新一代數(shù)字信號(hào)處理器中的第1個(gè)產(chǎn)品,于1997年3月發(fā)布。它是一個(gè)32bit的定點(diǎn)DSP芯片。該芯片具有8個(gè)相互獨(dú)立的功能單元,可以工作在200MHz的CPU時(shí)鐘頻率,全速運(yùn)行時(shí)可達(dá)到1600 MIPS。其主要特性包括:
芯片內(nèi)核采用VelociTI TM先進(jìn)的超長(zhǎng)指令字(VLIW)結(jié)構(gòu),具有高度的并行性和快速的運(yùn)行能力,每個(gè)時(shí)鐘周期最多可同時(shí)執(zhí)行8條32位指令,并且所有的指令都可以有條件執(zhí)行;
具有豐富的指令系統(tǒng)且可對(duì)字節(jié)操作,支持16位的乘法運(yùn)算;
有4個(gè)彼此獨(dú)立的快速的DMA通道,可以進(jìn)行多種形式的數(shù)據(jù)傳輸。
片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū)和程序存儲(chǔ)區(qū)各64KB,并支持多種數(shù)據(jù)寬度8位/16位/32位;32位的外部存儲(chǔ)器接口,提供與片外SDRAM、SDSRAM和SRAM的直接接口。
TMS320C6201的以上特點(diǎn),能滿足視頻圖像處理的實(shí)時(shí)性要求。例如:TMS320C6201 DSP計(jì)算1塊8
評(píng)論