基於可編程處理器的H.264技術的實現

 

談基於可編程處理器的H.264技術的實現

發佈: 2007-11-29 10:05 | 作者: 噹噹 | 來源: Internet

一、引言

隨着多媒體編碼技術的發展,視頻壓縮標準在很多領域都得到了成功應用,如VCD(MPEG-1)、視頻會議(H.263)、DVD(MPEG-2)、機頂盒(MPEG-2)等等。
 
而網絡帶寬的不斷提升(ADSL接入從以前的512kbit/s提升到現在的1Mbit/s,不久還將升到2Mbit/s,甚至更高)和高效視頻壓縮技術的發展使得人們逐漸把關注的焦點轉移到了寬帶網絡數字電視(IPTV)、流媒體等基於傳輸的業務上來。帶寬的增加爲流式媒體的發展鋪平了道路,而高效的視頻壓縮標準的出臺則是流媒體技術發展的關鍵。
  
H.264是ISO/IEC MPEG聯合ITU-T VCEG成立的聯合視頻組(JVT)制定的一個全新的標準。相對於H.263+和MPEG-4(Simple Profile),H.264的碼率平均降低了50%,以700kbit/s的碼流速率提供了接近DVD的畫面質量。
  
H.264能面向各種應用場合(從低比特率到高比特率),其算法本身也包含了豐富的基於壓縮和網絡傳輸的各種編碼選項。可編程處理器固有的靈活性決定其爲H.264的理想實現平臺。衆所周知,H.264的高效性是建立在其實現的高複雜度基礎上的,就其Baseline而言,解碼器複雜度將是H.263解碼器的3倍左右,而編碼器的複雜度更是高達10多倍。近年來,處理器芯片性能在不斷地提高,其中包括越來越高的處理器主頻,強大的運算功能以及豐富的外設。但是與當今日新月異的半導體技術、工藝相比,由於片上系統(SoC)的需求不斷提高,處理器的體系結構仍具有極大的發展空間。特別是H.264作爲一個前景廣闊而又具有挑戰性的新生"事物",必將帶動新一輪處理器架構的革新。而算法和架構的互動將會成爲這一輪革新的強有力的驅動。

二、應用:處理器架構革新的驅動力
  
事實上,處理器架構一直是在應用的驅動下發展、進步的。

1. DSP在數字信號處理算法驅動下的產生、發展
  
在過去的幾十年中,隨着半導體工藝與集成電路設計技術的逐漸發展,微處理器逐漸在工業控制等領域得到應用,簡單的智能控制與少量計算任務的實現,都是由我們通常所謂的單片機來完成的。單片機雖然集成了CPU、RAM、ROM(EPROM或EEPROM)、時鐘、定時/計數器、多種功能的串行和並行I/O口等部件,但是其面向的應用場合主要是工業控制中各種事件的管理調度等,運算處理能力不足一直是它的缺陷。
  
特別是隨着信息化的進程和信號處理理論與算法等的迅速發展,需要處理的數據量越來越大,對實時性和精度的要求越來越高,單片機越來越難以滿足不斷上升的要求,DSP應運而生。
  
DSP的產生背景決定了其架構的重點更多的是對特定的數字信號處理算法的強化支持

典型的數字信號處理算法,例如在有限長衝擊響應濾波器(FIR)的實現中,需要在係數和輸入樣本的滑動窗口間作乘法,然後將所有的乘積進行累加。類似的運算在數字信號處理過程中大量地重複發生,使得爲此設計的器件必須提供專門的支持。通常DSP處理器使用專門的硬件來實現單週期乘法,並且還增加了特殊的累加器寄存器來處理多個乘積的和。爲了充分體現專門的乘法累加硬件的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。另外,爲了提高特定算法的實現效率,一些DSP處理器有專門的硬件來實現特殊的尋址模式,例如,模塊(循環)尋址(對實現數字濾波器延時線很有用)、位倒序尋址(對FFT很有用)。這些特殊的尋址模式如果用軟件來實現,則會大大降低系統的性能。
  
爲了提高每個指令週期內數據(與指令)的吞吐量,大多數DSP採用了改進的哈佛結構,並且使用了多個片內存儲器和多組總線。此外,DSP處理器幾乎都不具備數據高速緩存,這是因爲DSP的典型數據是數據流。也就是說,DSP處理器對每個數據樣本做計算後就丟棄了,幾乎不再重複使用。另外,DSP算法中,通常大多數的處理時間是在執行較小的循環上,因此,大多數DSP設有專門的硬件用於零開銷循環。所謂零開銷循環是指處理器在執行循環時,不需要進行循環計數器的檢查、條件跳轉以及修改計數器值等操作,從而大大增強了DSP的性能。
  
這些結構上的改進極大地提高了DSP在運算密集型應用中的處理能力。但隨着新的算法與標準的不斷出現,對處理器運算能力的要求仍在不斷提高。爲了達到實際應用的需要,處理器的架構仍然在不斷的發展中。

2. 超標量、VLIW處理器架構
  
高性能DSP在應用中取得了巨大成功,其成功的基礎在於半導體工藝的不斷進步使其性能不斷提高,從而使其應用領域越來越廣泛。但其在市場上真正的活力卻是其可編程特性。只要到自己購買商品的廠商網站下載更新軟件就能"免費"升級消費品,還有什麼事情比這更讓消費者滿意呢?有了消費者的支持,企業當然能長盛不衰。
  
因此,人們從來沒有停止過更高性能處理器的架構研究。這其中就有多發射的超標量結構(Superscalar)和將若干指令組合在一起的超長指令字結構(VLIW),共同之處都是爲了開發指令級並行性(ILP,Instruction Level Parallel)。從提高處理器性能的出發點來看,其思想的先進性不容置疑。但在2004年的消費電子領域,呼聲更高的似乎是另一種架構:RISC(MCU)/DSP架構。典型的是ADI的Blackfin系列處理器,其重要特色就是在結構中充分體現對媒體應用(特別是視頻)算法的支持,另外在售價、功耗方面也具有很大優勢。筆者認爲,這些正是超標量與VLIW架構的處理器所欠缺的。

三、H.264:新一輪媒體處理器架構革新
  
目前,結合視頻處理算法,多項有效技術被採用。

1. SIMD技術:數據可並行處理特性
  
爲提高通用DSP的媒體處理能力,各大DSP廠商都在原有架構基礎上進行了媒體處理指令集擴展。其中,SIMD是被人們所熟知,也是最爲成功的一項技術(圖1)。現已幾乎被所有面向媒體處理相關領域的處理器所採用。SIMD技術通常通過內核中內置多個運算單元以及相應的控制、數據通路來實現,反映給用戶的是提供了支持SIMD操作的指令集。
  
SIMD技術利用了視頻算法:DCT/IDCT,ME/MC(運動估計、運動補償)等算法模塊中的可並行特性。

2. 數據預取技術:數據準備、運算寫回並行操作
  
在這裏,我們把數據處理分如下三個步驟:(1)數據準備;(2)數據處理;(3)數據寫回。
  
事實上,在視頻處理中,(1)和(3)有兩層含義。第一層指的是片內、片外的數據讀寫操作。理想情況是儘量減少數據讀寫的時間(往往把這部分看成是額外開銷)。從實踐上看,可以通過DMA機制實現DSP數據處理和片內外數據調度的並行處理。第二層指如何取得SIMD處理中的各個子數據,例如圖中(X3,X2,X1,X0)和(Y3,Y2,Y1,Y0)的獲取以及操作(具體隨OP不同而異)的並行處理。實際上,DSP(區別於單片機與RISC)中基於存儲器的尋址方式就是一種節省數據存儲器訪問時間的有效技術。真正意義上的指令中操作數裝載和並行運算的功能在Blackfin系列處理器中有了很好的體現。
  
而上述兩層含義的思想卻是相同的,那就是數據處理和數據存取的並行處理(圖2):處理當前數據的同時,把下次處理的數據預取(讀)進來或把上次計算結果寫回存儲器。
  
視頻處理是一個以數據處理爲主的系統,結合視頻處理算法,實現指令操作數裝載和並行運算將大大提高數據處理效率。

3. 基於可編程處理器的H.264實現策略
  
H.264在複雜度上大大高於以往標準,這就要求處理器在架構上必須找到新的突破。筆者認爲,以下兩點將是基於可編程處理器的H.264算法實現的有效手段。

(1)針對H.264具體算法實現進一步進行指令擴展。
  
在H.264中由於增加了很多以往標準所有沒有的編碼技術,例如整數變換(結合量化),去方塊效應濾波器,以及精度更高的運動估計和補償等等,這就要求在指令集上必須進行擴展。
  
值得一提的是,在H.264中運動估計採用了多幀參考技術,這要求處理器設計人員對處理器的數據調度機制以及片內外存儲器的組織等必須有新的考慮。

(2)雙核、多核架構適配H.264編碼器的可並行處理特性。
  
在H.264當中,和以往標準一樣可以進行基於圖(picture)、片(slice)和宏塊級的並行處理。而且,在H.264中採用RD算法進行模式選擇,所有的模式在計算時都不存在相關性,即可以並行操作。因此,雙核、多核架構在單核處理能力不夠的情況下,也將被人們接受。隨之而來的是軟件工作難度(如編譯器,操作系統任務調度等)將會大大增加。
  
針對以上兩點,值得一提的是ADI 的Blackfin系列處理器。該系列處理器中BF531/533/535均爲單核架構,均進行SIMD指令集的擴展。而其中的並行指令(運算類指令和存儲器操作指令可以並行執行)有力地提高了數據處理爲主的視頻編解碼器系統的性能。目前該款處理器正向多核架構發展(如基於雙核的BF561)以適應H.264如此高複雜度的算法的實現,這將是未來幾年內提升處理器性能的一個有效途徑,也將爲高複雜度的H.264的實現奠定基礎。而Blackfin系列處理器在功耗、成本等方面的指標也是其受到人們關注的一個原因。

四、MediaSOC3201A:一種非對稱結構的雙核系統芯片
  
浙江大學信息與通信工程研究所SoC R&D小組自2004年4月研發成功國內首款具有自主知識產權的RISC/DSP混合體繫結構處理器MediaDSP3200以來,於2004年底成功研製出基於雙核的音視頻SOC樣片(MediaSOC3201A),如圖3,其樣片如圖4。區別於BF561的對稱架構(SMP),MediaSOC3201A是一種非對稱結構(AMP),主要包括:媒體擴展CPU(運行操作系統,承擔音頻解碼、系統控制以及部分視頻解碼任務),多功能處理器MediaDSP3201(數字信號處理、媒體處理指令擴展處理器:浙大數芯,負責視頻處理等數據處理任務),多任務DMA(負責數據調度),各種同步、異步存儲控制器,視頻編碼器(支持NTSC、PAL等制式),IIS音頻播放以及GPIO等外設接口。
  
目前,課題組正在研究基於MedisSOC3201A的H.264算法實現。算法、架構協同考慮是我們的目標。課題負責人劉鵬教授正滿懷信心地帶領整個研發團隊爲中國的集成電路、媒體系統芯片事業添磚加瓦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章