基于ADSP-BF533處理器的H.264解碼器
發布時間:2007/8/23 0:00:00 訪問次數:569
來源:單片機及嵌入式系統應用 作者:華中科技大學 張迅
摘 要:H.264標準擁有比其他視頻編碼標準更好的壓縮性能,但計算復雜度高,限制了H.264標準的應用。Blackfin處理器是ADI公司推出的低功耗、高性能的定點DSP芯片,有極高的性價比,是H.264標準DSP實現的理想平臺。文中探討在Blackfin處理器上通過多種優化技術實現H.264實時解碼器的方法。并給出實驗結果。
關鍵詞:H.264 Blackfin ADSP 實時解碼器 BF533
引 言
H.264是ITU T的VCEG和ISO/IEC的MPEG聯合成立的聯合視頻組JVT(Joint Video Tearn)共同制定的新視頻編碼標準,定位于覆蓋整個視頻應用領域。H.264標準采用了基于可變大小宏塊的運動補償、多幀參考、整數變換、基于1/4像素精度的運動估計、去塊效應濾波器等新技術,因而獲得更好的壓縮性能,同時也導致了運算量的大幅度增加。
Blackfin處理器采用了ADI公司和英特爾公司共同開發的微信號結構,在結構中加人專門的視頻處理指令,工作頻率高達756 MHz,能完成12OOM次/s乘加操作。與采用超標量結構或超長指令集的DSP(如TI的C6000系列)相比,Blackfin處理器在功耗、成本方面具有很大的優勢,非常適合嵌入式的視頻應用。
1 H.264視頻編碼標準
H.264視頻編解碼器的基本結構與早期的編碼標準(H.263、MPEG4等)相似,都是由運動補償、變換、量化、熵編碼、環路去塊效應濾波器等功能單元組成的。H.264標準的改進主要體現在各功能模塊內部。H_264的重大改進表現在以下幾個方面:
①高精度的基于1/4像素精度的運動預測。
②多種宏塊劃分模式。每個宏塊(16×16像素)的亮度分量有7種分區方法:16×16、16×8、8×16、8×8、8×4、4×8、4×4。
③多幀預測。在幀間編碼時,可選5個不同的參考幀。
④整數變換。采用基于4×4像素塊的整數變換代替DCT變換。
⑤H_264/AVC支持兩種熵編碼方法,即CAVLC(基于上下文的自適應可變長編碼)和CABAC(基于上下文的自適應算術編碼)。CAVLC的抗差錯能力比較高,而編碼效率比CABAC低;CABAC編碼效率高,但需要的計算量和存儲容量更大。
⑥幀內預測編碼。H.264采用了多種設計合理的幀內預測模式,大大降低了I幀的編碼率。
⑦網絡適配層NAL(Network Abstraction Layer)為視頻編碼層提供一個與網絡無關的統一接口,使視頻編碼數據能適應不同的網絡應用環境。
H.264分為7種不同的框架(profile)——Baselineprofile、Main profiIe、Extended profile、High profik、High10 profik、High4:2:2 profile和High 4;4:4,分別代表不同的技術限制和算法集合。其中baseline prome的使用是不收版權費的。
2 基于ADSP—BF533的軟硬件實現平臺
硬件平臺采用ADI公司的ADSP—BF533 EZ—kit Lite評估板。此評估板包括l塊ADSP—BF533處理器,32MB SDRAM,2 MB Flash,ADVl836音頻編解碼器外接4輸入/6輸出音頻接口,ADV7183視頻解碼器和ADV7171視頻編碼器外接3輸入/3輸出視頻接口,1個UART接口,1個USB調試接口,1個JTAG調試接口。評估板系統結構框圖如圖1所示。
評估板上采用的ADSP—BF533處理器,工作頻率高達756 MHz。該處理器有以下特點:雙16位乘法累加器;雙40位算術邏輯單元(ALU);4個8位視頻ALU;1個40
位移位器;專用的視頻信號處理指令;148 KB的片內存儲器(16 KB可作為指令Cache,32 KB可作為數據Cache);動態電源管理功能等。Blackfin處理器還包括豐富的外設和接口:EBIU接口(4個128 MB SDRAM接口,4個l MB異步存儲器接口),3個定時/計數器,1個UART,1個SPI接口,2個同步串行接口,1路并行外設接口(支持ITU一656數據格式)等等。Blackfin處理器在結構上充分體現了對媒體應用(特別是視頻應用)算法的支持。
軟件驗證采用如下方式:首先,通過DSP仿真器將H.264編碼文件拷貝到評估板的存儲器里。然后,軟件從存儲器中讀取編碼文件的數據,進行解碼操作。最后,將解碼的數據通過PPI接口輸出到ADV7171芯片,ADV7171芯片將輸入的視頻數據編碼為PAL格式輸出到顯示器上二進行顯示。
Blackfin處理器的軟件開發平臺是VisualDSP++4.0。
3 H 264實時解碼器軟件設計
3.1軟件總體設計
為了實現實時解碼的要求,需要優化程序的設計。優化流程如下:
①在PC機上進行算法的驗證和評估、優化程序的流程設計和數據結構設計。
②將程序代碼移植到Blackfin處理器。在Visual—DSP++集成開發環境里進行編譯,刪除PC平臺相關的代碼,添加DSP平臺相關的代碼。
③進行基于DSP平臺的優化操作。設置速度優化的編譯參數,進行C語言級的優化,用匯編指令改寫最耗時的函數,通過使用專用的向量指令和并行指令減少函數的執行時間。
3.2 在PC機上實現并優化解碼器程序
解碼器程序參考了JM9.6,并在以下方面作
來源:單片機及嵌入式系統應用 作者:華中科技大學 張迅
摘 要:H.264標準擁有比其他視頻編碼標準更好的壓縮性能,但計算復雜度高,限制了H.264標準的應用。Blackfin處理器是ADI公司推出的低功耗、高性能的定點DSP芯片,有極高的性價比,是H.264標準DSP實現的理想平臺。文中探討在Blackfin處理器上通過多種優化技術實現H.264實時解碼器的方法。并給出實驗結果。
關鍵詞:H.264 Blackfin ADSP 實時解碼器 BF533
引 言
H.264是ITU T的VCEG和ISO/IEC的MPEG聯合成立的聯合視頻組JVT(Joint Video Tearn)共同制定的新視頻編碼標準,定位于覆蓋整個視頻應用領域。H.264標準采用了基于可變大小宏塊的運動補償、多幀參考、整數變換、基于1/4像素精度的運動估計、去塊效應濾波器等新技術,因而獲得更好的壓縮性能,同時也導致了運算量的大幅度增加。
Blackfin處理器采用了ADI公司和英特爾公司共同開發的微信號結構,在結構中加人專門的視頻處理指令,工作頻率高達756 MHz,能完成12OOM次/s乘加操作。與采用超標量結構或超長指令集的DSP(如TI的C6000系列)相比,Blackfin處理器在功耗、成本方面具有很大的優勢,非常適合嵌入式的視頻應用。
1 H.264視頻編碼標準
H.264視頻編解碼器的基本結構與早期的編碼標準(H.263、MPEG4等)相似,都是由運動補償、變換、量化、熵編碼、環路去塊效應濾波器等功能單元組成的。H.264標準的改進主要體現在各功能模塊內部。H_264的重大改進表現在以下幾個方面:
①高精度的基于1/4像素精度的運動預測。
②多種宏塊劃分模式。每個宏塊(16×16像素)的亮度分量有7種分區方法:16×16、16×8、8×16、8×8、8×4、4×8、4×4。
③多幀預測。在幀間編碼時,可選5個不同的參考幀。
④整數變換。采用基于4×4像素塊的整數變換代替DCT變換。
⑤H_264/AVC支持兩種熵編碼方法,即CAVLC(基于上下文的自適應可變長編碼)和CABAC(基于上下文的自適應算術編碼)。CAVLC的抗差錯能力比較高,而編碼效率比CABAC低;CABAC編碼效率高,但需要的計算量和存儲容量更大。
⑥幀內預測編碼。H.264采用了多種設計合理的幀內預測模式,大大降低了I幀的編碼率。
⑦網絡適配層NAL(Network Abstraction Layer)為視頻編碼層提供一個與網絡無關的統一接口,使視頻編碼數據能適應不同的網絡應用環境。
H.264分為7種不同的框架(profile)——Baselineprofile、Main profiIe、Extended profile、High profik、High10 profik、High4:2:2 profile和High 4;4:4,分別代表不同的技術限制和算法集合。其中baseline prome的使用是不收版權費的。
2 基于ADSP—BF533的軟硬件實現平臺
硬件平臺采用ADI公司的ADSP—BF533 EZ—kit Lite評估板。此評估板包括l塊ADSP—BF533處理器,32MB SDRAM,2 MB Flash,ADVl836音頻編解碼器外接4輸入/6輸出音頻接口,ADV7183視頻解碼器和ADV7171視頻編碼器外接3輸入/3輸出視頻接口,1個UART接口,1個USB調試接口,1個JTAG調試接口。評估板系統結構框圖如圖1所示。
評估板上采用的ADSP—BF533處理器,工作頻率高達756 MHz。該處理器有以下特點:雙16位乘法累加器;雙40位算術邏輯單元(ALU);4個8位視頻ALU;1個40
位移位器;專用的視頻信號處理指令;148 KB的片內存儲器(16 KB可作為指令Cache,32 KB可作為數據Cache);動態電源管理功能等。Blackfin處理器還包括豐富的外設和接口:EBIU接口(4個128 MB SDRAM接口,4個l MB異步存儲器接口),3個定時/計數器,1個UART,1個SPI接口,2個同步串行接口,1路并行外設接口(支持ITU一656數據格式)等等。Blackfin處理器在結構上充分體現了對媒體應用(特別是視頻應用)算法的支持。
軟件驗證采用如下方式:首先,通過DSP仿真器將H.264編碼文件拷貝到評估板的存儲器里。然后,軟件從存儲器中讀取編碼文件的數據,進行解碼操作。最后,將解碼的數據通過PPI接口輸出到ADV7171芯片,ADV7171芯片將輸入的視頻數據編碼為PAL格式輸出到顯示器上二進行顯示。
Blackfin處理器的軟件開發平臺是VisualDSP++4.0。
3 H 264實時解碼器軟件設計
3.1軟件總體設計
為了實現實時解碼的要求,需要優化程序的設計。優化流程如下:
①在PC機上進行算法的驗證和評估、優化程序的流程設計和數據結構設計。
②將程序代碼移植到Blackfin處理器。在Visual—DSP++集成開發環境里進行編譯,刪除PC平臺相關的代碼,添加DSP平臺相關的代碼。
③進行基于DSP平臺的優化操作。設置速度優化的編譯參數,進行C語言級的優化,用匯編指令改寫最耗時的函數,通過使用專用的向量指令和并行指令減少函數的執行時間。
3.2 在PC機上實現并優化解碼器程序
解碼器程序參考了JM9.6,并在以下方面作