新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP設(shè)計(jì)MPEG-4無線視頻產(chǎn)品方案

基于DSP設(shè)計(jì)MPEG-4無線視頻產(chǎn)品方案

作者: 時(shí)間:2012-04-24 來源:網(wǎng)絡(luò) 收藏

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

2. 量化/反量化DDCU

量化和反量化是視頻編解碼中的兩種基本操作,其計(jì)算量占整個(gè)視頻編解碼計(jì)算量的10%甚至更多。量化/反量化DDCU允許在單周期內(nèi)處理多像素,其內(nèi)部操作可以滿足多種等級(jí)的量化需求。在比特流/可變長度解碼DDCU中,將可變長度解碼模塊的計(jì)算需求降低15.4%時(shí),指令存儲(chǔ)空間也會(huì)減小,這一特性同樣適用于量化、反量化DDCU。

3. 半像素內(nèi)插/運(yùn)動(dòng)補(bǔ)償DDCU

這種運(yùn)算單元用于加速半像素內(nèi)插操作,該操作所需計(jì)算量相當(dāng)大。在解碼器中,內(nèi)插/補(bǔ)償操作所消耗的時(shí)鐘周期約為總時(shí)鐘周期的40%。該單元中所涉及的運(yùn)算其實(shí)很簡單,只需要面積很小的硅片就能完成,因此很容易移入DDCU中去。就算是邊緣擴(kuò)展這樣的涉及大量計(jì)算的操作,只要不需要進(jìn)行優(yōu)化處理,也還是可以較好地移入硬件中。

不論采用哪種內(nèi)插類型,內(nèi)插/運(yùn)動(dòng)補(bǔ)償DDCU中的指令組都允許每周期內(nèi)插4個(gè)像素,這一特性也減少了需要執(zhí)行的指令數(shù)。通過使用內(nèi)插/運(yùn)動(dòng)補(bǔ)償DDCU,半像素內(nèi)插/運(yùn)動(dòng)補(bǔ)償操作的速度可以增快74.6%。

4. DCT/IDCT DDCU

IDCT(反離散余弦變換)和DCT(離散余弦變換)都是視頻編碼中固有的運(yùn)算。眾所周知,這兩種運(yùn)算需要占用大量的時(shí)鐘周期,并要求在編寫其匯編代碼時(shí)非常小心。本文談到的這種專用DCT/IDCT DDCU單元(依據(jù)IEEE 1180-1990規(guī)范)可模仿DCT/IDCT中的“蝶形”運(yùn)算。通過使用這種計(jì)算單元可以大大提高視頻設(shè)計(jì)的性能和生產(chǎn)力,從而使開發(fā)人員能夠集中精力開發(fā)視頻應(yīng)用中的其他方面,以達(dá)到使其產(chǎn)品區(qū)別于其他同類產(chǎn)品的目的。

5. 運(yùn)動(dòng)估計(jì)(MEMC)DDCU

MEMC單元用于幫助完成運(yùn)動(dòng)估計(jì)這一計(jì)算量最大的操作。應(yīng)用中,在每個(gè)運(yùn)動(dòng)矢量的位置上都必須進(jìn)行誤差測量。MEMC DDCU可以完成兩種最常見的誤差測量計(jì)算:絕對(duì)誤差和(SAD)測量和平方誤差和(SSE)測量。平臺(tái)中若加入該運(yùn)算單元,那么每周期誤差測量時(shí)所比較和累加的像素位置就可以多達(dá)4個(gè)。

6. 四分之一像素運(yùn)動(dòng)補(bǔ)償單元

基本來說,該單元所提供的功能是對(duì)半像素內(nèi)插單元的一種必要的擴(kuò)展。四分之一像素算法比半像素算法稍微復(fù)雜一些,因?yàn)樗紫炔捎昧艘粋€(gè)2維FIR 濾波器來獲取半像素值,然后才使用線性插值法來計(jì)算四分之一像素值。這個(gè)2維濾波器直接并入半像素內(nèi)插單元,致使半像素內(nèi)插單元的硅片面積稍有增大,但這種方式仍然保持了較高的像素處理速度,這一速度遠(yuǎn)遠(yuǎn)超過只采用Simple Profile 設(shè)計(jì)的引擎。

7. 全局運(yùn)動(dòng)補(bǔ)償單元

在視頻應(yīng)用中有一種變形函數(shù)(warping function)專門用來描述當(dāng)前視頻對(duì)像相對(duì)于參考視頻對(duì)像的變化。全局運(yùn)動(dòng)補(bǔ)償(GMC)單元就是為加速這種函數(shù)的運(yùn)算而設(shè)計(jì)的。該單元最大可支持 3點(diǎn)變形(即參考VOP的仿射變換)。一旦從比特流中分析出變形點(diǎn)的個(gè)數(shù)后,就用這個(gè)數(shù)值來初始化GMC。GMC計(jì)算變形等式的速度遠(yuǎn)遠(yuǎn)快于純軟件實(shí)現(xiàn)方式的計(jì)算速度。

8. 語境自適應(yīng)算法編/解碼DDCU

構(gòu)成語境需要進(jìn)行逐位操作,而逐位操作只能在標(biāo)準(zhǔn)的32位中實(shí)現(xiàn)。為了打破這一限制,語境自適應(yīng)算法編/解碼DDCU采用硬件方法形成語境值。該DDCU內(nèi)部有一個(gè)查找表,用于存放所有可能的語境值,以便快速查找判斷。語境自適應(yīng)編解碼運(yùn)算單元支持以1b/周期的速度進(jìn)行算法編、解碼。

怎樣創(chuàng)建一個(gè)工作平臺(tái)

設(shè)計(jì)者定義了需要用到的DDCU之后,就可以用它們來創(chuàng)建滿足其特殊要求的用戶應(yīng)用引擎,并由此構(gòu)建起工作平臺(tái),從而設(shè)計(jì)出具有視頻功能的產(chǎn)品。

為清楚起見,讓我們來看一個(gè)例子,例中的引擎是專門針對(duì)可傳送信息的3G移動(dòng)電話設(shè)計(jì)的。這樣的引擎要想在3G移動(dòng)電話上實(shí)現(xiàn)預(yù)期的視頻功能,就必須以低于20MHz的速度處理第1級(jí)和第2級(jí)MPEG-4簡單視覺等級(jí),這樣才能為諸如音頻和語音處理等其他DSP功能留有一定的可規(guī)劃帶寬。

在開始設(shè)計(jì)用戶DSP時(shí),分配1 ALU、1 SHIFT和1MAC單元作為起始基準(zhǔn)平臺(tái)是比較合理的。要想增加并行性,只需將這些計(jì)算單元再分配給兩個(gè)單獨(dú)的指令段:ALU和SHIFT分配給同一段, MAC分配給另一段。如果該視頻應(yīng)用采用的是幀處理速度為每秒15幀的CIF格式,那么要在這個(gè)用戶平臺(tái)上編譯視頻應(yīng)用程序就需要40MHz的帶寬,若采用QCIF格式則只需10MHz帶寬。盡管這樣的帶寬已經(jīng)很具競爭力了,但仍然不能滿足前面提到的具有MPEG-4功能的3G移動(dòng)電話的需要。

降低帶寬要求的解決方案

首先,要分析在用戶平臺(tái)中加入不同的計(jì)算單元對(duì)其性能的影響(這些計(jì)算單元全部來自MPEG-4 DDCU庫)。也就是說,我們定義了一系列的引擎,以此分析不同的計(jì)算單元混用方式所造成的性能影響。分析表明,應(yīng)該保留兩段型引擎定義,因?yàn)檫@可以限制指令寬度,使之不至于過寬。

然后再定義一些新的引擎,經(jīng)過編譯,分析其結(jié)果。新引擎定義分析的整個(gè)過程用了1或2個(gè)小時(shí)。由于DDCU庫是提前創(chuàng)建好的,因此許多引擎可以在一天時(shí)間內(nèi)就分析完。接著從這些引擎中選出最能滿足目標(biāo)產(chǎn)品要求的,用來構(gòu)建工作平臺(tái)。

這樣得到的工作平臺(tái)與基準(zhǔn)平臺(tái)相比,增加了一個(gè)ALU和四個(gè)MPEG-4 DDCU:比特流DDCU、量化/反量化DDCU、半像素DDCU和DCT/IDCT DDCU(見圖2)。在起始平臺(tái)的基礎(chǔ)上添加這些運(yùn)算單元,目的就是在不增大指令存儲(chǔ)或數(shù)據(jù)存儲(chǔ)的前提下,盡可能降低對(duì)時(shí)鐘速率(MHz)的要求。完成這些操作之后,我們得到了這樣一個(gè)用戶應(yīng)用引擎,該引擎可以用帶寬只有18MHz的DSP完成每秒15幀的CIF格式圖像的解碼,同時(shí)還能滿足這種3G應(yīng)用的其他關(guān)鍵要求(低功率、小晶片尺寸以及低時(shí)鐘速率)。

從圖3中可以看出DDCU對(duì)加快整個(gè)應(yīng)用運(yùn)行速度的作用。圖中第一條表示在標(biāo)準(zhǔn)CU構(gòu)成的基準(zhǔn)平臺(tái)上,整個(gè)運(yùn)算時(shí)間在IDCT、運(yùn)動(dòng)補(bǔ)償(MC)以及可變長度編碼和反量化(VLD/DQnt)這幾種DDCU之間的分布情況。

可以看出,在這幾種DDCU中,MC部分占用時(shí)鐘周期最多。因此我們在工作平臺(tái)上添加了一個(gè)DDCU來加速半像素內(nèi)插操作,提高M(jìn)C部分的速度。一旦MC部分所占用的時(shí)鐘周期數(shù)大幅降低,VLD/DQnt馬上就上升成為了限制整個(gè)應(yīng)用性能的最主要因素。針對(duì)這一情況,再添加一個(gè)比特流 DDCU和一個(gè)量化/反量化DDCU,又進(jìn)一步提高了性能。這樣,最初的基準(zhǔn)平臺(tái)已經(jīng)經(jīng)過了兩次組合。此時(shí),再將IDCT DDCU加入其中,整個(gè)應(yīng)用的性能就得到了更大的提高。圖3中的最后一條給出了三次組合后整個(gè)應(yīng)用需要耗費(fèi)的時(shí)鐘周期。

上面介紹的只是一個(gè)典型案例。一般而言,在應(yīng)用的開發(fā)中,按照以上這幾步進(jìn)行操作,我們就可以快速地構(gòu)造一個(gè)優(yōu)化的引擎,為移動(dòng)電話或PDA設(shè)備開發(fā)出收發(fā)MPEG-4視頻信息的功能。更妙的是,在構(gòu)造起這個(gè)引擎的同時(shí)還可以解放一部分處理器資源,使之有余力去支持其他的一些新興功能,比如MP3音頻、網(wǎng)絡(luò)瀏覽,甚至更多。


上一頁 1 2 下一頁

關(guān)鍵詞: DSP MPEG-4 無線視頻

評(píng)論


相關(guān)推薦

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

關(guān)閉