摘 要DSP 的迅速發展使圖像信息的傳遞范圍不斷擴大,實時數字視頻壓縮的應用也越來越廣泛,在DSP上用軟件實現視頻壓縮成為數字視頻壓縮標準應用的一個亮點。基于此,文章對H. 264/AVC視頻編碼器的DSP實現做一些探索。
關鍵詞 H.264/AVC;視頻編碼器;DSP
中圖分類號 TP393.03 文獻標識碼 A 文章編號 1671-489X(2008)08-0094-03
1 高速實時數字信號處理系統
1.1 高速實時數字信號處理的概述 信號處理是一門涉及許多學科而又廣泛應用于許多領域的新興學科,其本質是信息的變換和提取,是將信息從各種噪聲、干擾的環境中提取出來,并變換為一種便于為人或機器所使用的形式。實時指的是系統必須在有限的時間內對外部輸入信號完成指定的處理,即信號處理的速度必須大于等于輸入信號的更新速度,而且從信號輸入到經過處理后信號輸出延遲必須足夠小。數字信號處理就是用數學的方法對信號進行變換,以獲取有用信息。
高速實時數字信號處理是信號處理中的一個特殊分支,它的主要特點是高速處理和實時處理,被廣泛地應用于工業和軍事的關鍵領域,如對雷達信號的處理、對通信基站信號的處理等。數字信號處理的主要缺點是處理量隨處理精度、信息量的增加而成倍增長,解決這一問題的方法是研究高速運行的數字信號處理系統。在高速實時數字信號處理系統的實現中,首先要采用先進設計軟件來保證系統設計的正確性,其主要特征就是采用電子設計自動化(EDA)軟件進行優化設計,系統的核心是高速DSP技術。
1.2 高速實時DSP系統的構成 一個典型的高速實時數字信號處理系統除了核心的DSP技術外,還需要配合大量的外圍電路。它可以由一個DSP及外圍總線組成,也可由多個DSP組成,這完全取決于DSP處理的要求。一個DSP系統分為前向通道和后向通道,它的主要任務是將前向通道輸出的信號按照一定的算法進行處理,然后將處理的結果以數據流的形式輸出給后向通道。圖1為一個典型的基于DSP的高速實時數字信號處理的主要功能框圖。
在圖1中,高速實時DSP處理系統是一個比較完備的DSP系統,它的外圍電路包括:模擬與數字信號的轉換電路ADC、DAC,其在DSP系統中起到關鍵作用,直接影響到系統的可實現性和系統的性能;用于數字信號的上變頻和下變頻的DDC、DUC;緩沖和存儲電路FIFO、RAM;邏輯控制與協處理器CPLD、FPGA等。但圖1只是實時DSP處理系統的一個典型模型,并不是所有的DSP系統都必須有模型中的所有部件。如有些輸入信號本身就是信號,根本不需要前向通道環節。

2 高速實時DSP系統的開發流程與開發工具
2.1 實時DSP系統的開發流程 利用DSP設計一個DSP系統的一般過程(如圖2所示)。在設計DSP系統之前,首先根據應用系統的功能確定系統的性能指標、信號處理的要求,分析要處理的輸入和所要求的處理結果,確定采用的DSP算法。估算實現信號處理的時間、精度等,要求選擇DSP芯片以及與之配套的開發系統,并對DSP芯片的資源進行分析,進而綜合考慮系統要求,得到最后系統配置,再進行具體的應用設計。

應用設計包括2個部分:硬件設計和軟件設計。系統樣機需要進行硬件和軟件的調試。硬件調試和軟件調試一般都要基于DSP的開發系統。系統調試完成后,就可以將軟件脫離開發系統直接在應用系統上運行。
DSP系統的開發,特別是軟件的開發是一個需要反復進行調整的過程,如果算法運算量太大而不能在硬件上實時運行,則必須重新修改或優化算法。
本文基于DSP芯片的H.264實時視頻編碼編碼系統的開發過程也遵循這個DSP系統典型開發流程[1-4]。
2.2 系統設計對DSP的要求 本系統的要求是實時實現視頻編碼,采用ITU和ISO/IEC聯合研究并制定的面向未來IP和無線環境的視頻壓縮標準——H.264/AVC。以H.264/AVC標準中普遍使用的一種圖像格式QCIF(176×144)為例,當該圖像格式下的編碼速度達到15幀/秒,即為實時編碼。若每一位像素采用8位編碼,則數據傳輸率是3 Mbps。
從運算量的角度來看,本系統的信號處理算法是每隔一定時間間隔循環一次。以15幀/秒的視頻圖像為例,這個時間間隔為1/15秒,記為Δ。假設DSP芯片的指令周期為F,則該DSP芯片在這個間隔里所能提供的最大運算量為Δt/F條指令。這2個重要指標是選擇DSP芯片的基本依據。
3 H.264編碼器算法的DSP實現與優化
在DSP等嵌入式系統上的軟件實現和PC機上的軟件實現有著明顯的區別。對于大部分基于PC機的應用程序來說,只需要考慮如何編寫代碼就足夠了。當然,在編寫代碼時要考慮算法的性能和數據結構,其他像內存分配和CPU處理時間的分配就不用考慮。但是在嵌入式系統上實現應用程序,除了要考慮上述問題之外,還要考慮系統的初始化和存儲空間的分配、CPU 的處理分配,并行化處理等問題。H.264編碼器算法在DSP上的實現,是建立在PC機的H.264編碼器算法的代碼基礎上的。因此首先介紹H.264視頻編碼算法版本的選擇,然后介紹算法的實現和優化,再著重講解H.264視頻解碼算法代碼的DSP化及在DSP上的優化工作[5-7]。
3.1 在PC機上實現H.264編碼器的算法選擇[8]ITU-T官方提供的H.264的核心算法不僅在代碼結構上需要改進,而且在具體的核心算法上也需要做大的改動,才能達到實時的要求,因此在PC機上實現H.264算法就必須選擇一個合適的算法軟件。ITU的官方網站上提供了很多可選的標準軟件可以采用,包括Tml系列和Jm系列。本文采用Jm6.1e版本的baseline profile作為實現的基礎,以支持H.264 最新增加的特性。之所以這么選擇,一是相對于別的軟件版本,Jm6.1e是開始進行算法實現和優化工作時,ITU-T提供的最新版本的參考模型,里面包含了H.264標準中最新的技術,具有最好的編碼效果;其次,由于H.264的算法復雜度過高,baseline中不包括一些復雜度很高的可選選項,而其采用的技術已經能夠滿足實現高效媒體處理平臺的需要。
4 實驗結果分析
測試硬件平臺分別為PC機AMD 650 MHz(256 M內存)和DSP平臺TMS320DM642EVM(600 M)。2個QCIF(176×144)標準測試序列“Foreman”和“Clair”序列,其中“Foreman”為中等運動序列,“Clair”為小運動序列;采用幀率為30 Hz,使用全部7種幀間模式,Hadamard變換和率失真最優化,參考幀數為1,搜索范圍為(-16~16),量化步長QP=28。編碼后的序列,除首幀外,其余各幀編碼為P幀,即采用IPPP…的編碼方式。
表1和表2為2個典型QCIF標準序列在PC機和DSP平臺上的測試結果,表中數據為編碼后I幀和P幀的測試結果。Sp/bit為每幀圖像編碼后的比特數,SNRY、SNRU、SNRV分別為Y、U、V分量的信噪比,T為每個I幀和P幀的平均編碼時間,其值可以通過CCS中剖析工具(profiler)獲得。從表中的數據可以看出:不管是“Foreman”序列還是“Clair”序列,DSP平臺下的亮度分量的峰值信噪比比PC機平臺下的信噪比下降不到0.1 dB,色度分量的信噪比在某些情況下還有所上升。DSP平臺下的每幀平均比特數稍有增加,但編碼速度卻在PC機的基礎上有大幅提升。

基于DSP平臺的H.264編碼器的實時實現具有非常重要的意義。作為一個低成本、便攜、高效的多媒體通信終端平臺,可以在較低帶寬的信道上提供高質量的圖像傳輸,在可視電話、視頻監控、視頻會議系統、網絡視頻流媒體服務、高清電視等領域有廣闊的應用前景。
參考文獻
[1]李方慧,王飛,何佩琨.TMS320C6000系列 DSP原理與應用[M].第二版.北京:電子工業出版社,2003
[2]熊煒.由TMS320DM642實現的IP視頻電話系統[J].電子技術,2005(2):11-14
[3]張琛,趙盺,郭娟,戚文芽.基于TMS320DM642芯片的圖像編碼系統設計[J].微計算機信息,2005(4):113-114
[4]安向陽,沈庭芝.基于DSP TMS320DM642的H.264視頻編碼的實現和優化[J].微計算機信息,2005(7):128-130
[5]許小東,徐佩霞.基于TMS320DM642的視頻解碼系統優化[J].數據采集與處理,2005(3):91-95
[6]周雅斌,徐元欣,方健,等.基于TMS320DM642的MPEG-4編碼器設計和優化[J].電視技術,2005(6):36-42
[7]張琛,戚文芽.基于TMS320DM642的MPEG4算法優化[J].電子工程師,2005(2):39-41
[8]丁貴廣,計文平,郭寶龍,等.Visual C++6.0數字圖像編碼[M].北京:機械工業出版社,2004.02