多媒體系統(tǒng)芯片的應用與技術架構(gòu)─以MPEG-4為例
2004年9月A版
多媒體系統(tǒng)在信息傳播與記錄上的應用已日趨普遍,且成為信息傳播的主流。在多媒體的傳輸當中,視頻占了很大的比重。由于視頻數(shù)據(jù)量十分龐大,在實際的儲存與傳輸上都有困難,因此已有許多壓縮標準被制訂出來。如:應用在VCD的產(chǎn)業(yè)上,成為VCD標準的MPEG-1;應用在DVD和HDTV上,現(xiàn)有的DVD也已經(jīng)成功應用的MPEG-2;應用在ISDN上的H.261;與應用在GSTN上的H.263和H.263+等等。其中,國際標準組織 (ISO) 于1998年底完成制訂了一個新的視頻壓縮標準,也就是MPEG-4。在這個標準之下,包含了許多新的功能,目的就是為了支持在新的傳輸環(huán)境下,有更好的視頻影像傳輸效果及更加生動的功能,而相對的,MPEG-4的復雜度也較以往的其它標準為高。因此,我們就以MPEG-4為例,介紹一個多媒體系統(tǒng)芯片的應用以及技術架構(gòu)。
運算量分析
在過去,許多視頻標準在各種軟件與硬件的平臺上能夠有效的實現(xiàn),是基于運算資源能否有效利用與整合分配。因此,需要對MPEG-4算法做詳盡完整的運算特性與復雜度分析?;谶@些分析,才能對運算資源做有效規(guī)劃,以取得最佳的設計取舍,并決定后續(xù)實現(xiàn)的方式。
表1及表2為現(xiàn)有對MPEG-4 Core Profile Level 2這樣的規(guī)格之下,MPEG-4所需要的運算資源,這些運算資源包含有數(shù)據(jù)處理運算(Data Processing)與內(nèi)存存取量 (Data Transfer)。首先,可看出MPEG-4編碼的運算遠遠大于解碼的運算,且在實時的應用下,以現(xiàn)今常見的高階運算處理器也很難提供如此巨額的運算需求。此外,在編碼算法中,最主要的運算就是全搜尋法移動估計運算 (Full Search Motion Estimation, ME)以及二元形狀編碼法運算(Shape Coding) ,占去整個視頻編碼運算約百分之九十的運算負載。其中二元形狀編碼是在MPEG-4中特有的運算。而其它的部份如以MB為基本單位的移動補償 (Motion Compensation, MC)、以Block為基本單位的離散余弦轉(zhuǎn)換 (Discrete Cosine Transform, DCT)、以Bit為基本單位不定長度編碼 (Variable Length Coding, VLC) 等,所占的運算量都不大。表3為這些主要運算的特性。根據(jù)這些特性,在架構(gòu)設計時,即可將數(shù)據(jù)平行化 (data parallelism)、運算管線化 (task-pipelining)、硬件尋址 (hardware addressing) 與數(shù)據(jù)重用 (data reuse) 等技巧套用上去,以實現(xiàn)MPEG-4視頻編解碼系統(tǒng)。
移動估計 (Motion Estimation)
ME的設計已被廣泛的討論于許多文獻中,其具有高度數(shù)據(jù)平行運算的特性。由于ME的算法有全搜尋法 (Full search) 與快速算法 (Fast algorithm)兩大類,此二者在搜尋時所需數(shù)據(jù)的順序大不相同,因此也產(chǎn)生出各自適合的架構(gòu)。對全搜尋法,常見的為systolic array的架構(gòu);但對于快速算法,架構(gòu)上的設計就需要搭配算法,以得到較高的效率。近年來的作法,是針對不同的應用,以不同的算法來處理,因而產(chǎn)生了一種混合式的設計,是可在全搜尋法與快速算法間作切換。此種作法共分成三個處理程序,第一級為Pattern Generation,根據(jù)不同的Search Pattern來產(chǎn)生適當?shù)乃褜の恢?,如:在全搜尋法時可采用螺旋狀(Spiral Pattern),而在快速算法(例如Diamond Search)時為Diamond Pattern,并且將此搜尋位置送入第二級FIFO,以提高第三級的硬件使用率。第三級為Distortion Calculation,使用加法樹來計算Distortion并且累加成為SAD值。此外,由于ME需要存取大量的數(shù)據(jù),因此如何減少內(nèi)存存取便成為一個重要的課題,一般的作法會是以內(nèi)存的重新排序或是其它技巧以達到數(shù)據(jù)重復使用的目的。
形狀編碼 (Shape Coding)
二元形狀編碼法為MPEG-4視頻標準中用以支持對象導向功能最為核心關鍵的一個技術,因其內(nèi)含大量的位層次運算以及大量的數(shù)據(jù)交換特性,導致在精簡指令集計算器運算上的瓶頸。在設計上可采用延遲線模型(Delay Line Model)來實現(xiàn),利用一些緩存器及適當安排的數(shù)據(jù)排程,便可達到數(shù)據(jù)重用的目的,以減少對內(nèi)存的存取。另外,對于CAE (Context Arithmetic Encoder)的運算,需要因應不同的Template與不同Block(塊)大小(16
評論