Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

在嵌入式平行DSP上實現MPEG-4編碼器

上網時間: 2003年11月17日     打印版  Bookmark and Share  字型大小:  

關鍵字:編碼器  嵌入式  平行  函數  數位訊號處理器 

由於MPEG-4具備在各種頻寬條件下處理多媒體的能力,它正迅速成為一種最通用的視訊壓縮協議。

利用ChipWrights公司DSP產品CW4511的處理能力來實現MPEG-4 Simple Profile壓縮標準曾是一個相當大的挑戰。CW4511是一個包含8個平行處理器的單指令多數據通道系統單晶片,其上有128K位元組記憶體,還有多個連接外部SDRAM的介面、輸入╱輸出視訊埠、一個大量記憶體介面以及三條管理數據傳輸的DMA通道。這種架構很適合MPEG-4應用,因為其平行處理功能可用來同時處理一個圖像的多個數據塊。與串列處理器相較,這提高了系統的吞吐量和總體性能。

我們的MPEG-4編碼器實現方案遠不止是將現有的參考程式碼灌進DSP。我們使用了國際標準化組織(ISO)的一個基準程式碼庫。為改進程式碼的可讀性,ISO的MPEG-參考程式碼用C++寫成,它假設了兩個前提:可直接存取一個平面記憶體映象架構;性能不是問題。

這兩個假設與即時嵌入式系統的要求並不一致。C++物件模型帶來大量指令消耗,這既加大了指令快取記憶體的填充堆疊長度,又直接增加了執行所需的周期數。包括我們產品在內的大多數DSP,其全速記憶體的容量是有限的,所以數據必須透過DMA通道來回傳遞。最後,該計畫需要的是一個即時實現,所以參考實現方案的一些較複雜、需多次調用執行的部份必須進行重新設計或者放棄不用。

我們的C實現編碼器一開始是將MPEG-4演算法分割為一系列獨立的函數作業。然後,我們依據數據如何能被劃分成可被平行處理的獨立塊,來規劃各個作業的數據使用。

從這一資訊出發,我們製作了一個處理數據的程式碼架構,它的方式與在DSP上的最終實現相似。該程式碼架構從收集我們用C一次寫成一個的小函數位類比組開始。這種循序漸進的方法使得我們能夠對照ISO參考程式碼來驗證每個新寫的函數位類比組。

在此過程的數據用法分析部份,我們需要決定如何將輸入影像數據劃分為獨立的塊或片段。根據這些片段的大小和它們的行動頻率,來對記憶體頻寬和處理器性能進行權衡考慮。在我們的例子中,我們選擇的片段大小是8個巨集塊。根據MPEG-4 Simple Profile規格,一個巨集塊是16x16點陣圖像的一部份。圖1:晶片模擬器╱Profiler的概要報告顯示了:每一函數的總周期數以及該函數內每一指令的周期數;發出的指令(綠)和堆疊周期(紅);使用周期佔總周期的百分比,以及該函數細節一覽。

這種片段大小使得單指令多數據通道DSP的每一平行處理器都能處理一個巨集塊。這一點很重要,因為全部8個平行處理器必須同時執行同一指令。各巨集塊的作業相互獨立,因而可以進行同步處理。

一旦模型完成並用C來執行,我們就開始該計畫的最佳化階段。此處我們利用本公司的晶片模擬器和Profiler程式以便進行性能分析和除錯。

晶片模擬器是一個在PC上執行的程式,它是ChipWrights整合開發環境(IDE)的一部份,可以從功能上模擬DSP硬體而且模擬周期很準確。這使得我們無需接觸實際目標板就能編寫和執行匯編程式碼。

該模擬器能為DSP的周期數建模,其內建Profiler可產生一個特定模擬所執行的全部指令的HTML報告。這使得我們可以評估我們最初的假定並確定改進目標。

該Profiler輸出的概要部份顯示了許多參數,其中有:系統執行過的函數;每個函數執行所佔的處理器時間;一個佔用最多周期的函數分類表(參見圖1)。

對每一函數,Profiler的輸出向我們顯示執行每一指令所用的周期數及用於該指令的特定堆疊。我們關注的主要堆疊包括:DMA分塊、一級快取記憶體填充、指令排序和循環過程定時。

借助這些資訊,我們可以透過用匯編語言編寫關鍵部份程式碼同時確保以一種最適於平行處理的方式重新安排輸入數據,因而實現程式碼的最佳化。能很好進行平行處理的函數包括:離散餘弦變換、AC/DC係數預測、量化、Z線掃描及運動評估。不太便於平行處理的程式演算法有掃描寬度編碼和輸出位元流的建構。

透過與C++ MPEG-4參考程式碼進行逐位元對比的方式,我們對最佳化的實現方案進行了驗證。結果顯示,我們的方案超過了預定的性能目標:在1/4VGA解析度時,超過每秒30個訊框;在VGA解析度時,超過每秒12個訊框。晶片模擬器及其Profiler使我們能夠分析為平衡記憶體頻寬與指令大小以及演算法複雜性而進行的折衷,最終幫助我們實現既定的性能目標。

該編碼器已經整合在兩個嵌入式應用中:一個是安全照相機;另一個是全功能數位照相機。安全照相機將一個感測器和一個影像處理管線同該MPEG-4編碼器整合起來,透過一個低位元速率的連接線傳送即時視訊訊號。數位照相機應用也有一個感測器和影像處理管線,但在同一個低功耗設備中,還包含了高解析度靜態拍攝、錄音和MP3重放功能。

作者:Sal Tuccitto,


軟體壓縮架構設計師

作者:Joel Turner


軟體總監


ChipWrights公司




投票數:   加入我的最愛
我來評論 - 在嵌入式平行DSP上實現MPEG-4編碼器
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首