新聞中心

EEPW首頁 > 消費電子 > 設計應用 > 利用SoC平臺設計并驗證MPEG-4/JPEG編解碼IP

利用SoC平臺設計并驗證MPEG-4/JPEG編解碼IP

作者: 時間:2009-02-11 來源:網絡 收藏
隨著硅工藝在幾何尺寸上的不斷縮小,芯片的者事實上能將所有系統(tǒng)功能整合在單一芯片上。許多芯片制造商和者在面對客戶對于多功能、低功耗、低成本及小型化的需求時,認為的高集成度是解決問題的萬能藥方。不幸的是,的生產力跟不上摩爾定律的速度。

  如圖1所示,對一般的設計而言,、嵌入式處理器、內存和邏輯閘使用數目的增加所造成的復雜度上升,將導致設計與人力也隨之上升。因此,設計的復用性變成了一種可推進設計生產力的有效途徑。

圖1所示

本文引用地址:http://www.butianyuan.cn/article/167069.htm


  盡管基于可復用的設計方法已經推廣了將近十年,但大多數的設計方式仍然大量地采用基于模塊的堆積,并且需要用戶去進行整合。使用預先設計好的模塊時,工程師必須了解模塊如何工作,以及在設計中如何與其它模塊整合并且工作正常。第三方增加了整合的難度,即便是那些在商業(yè)上取得成功的,并且經過流片的IP,在使用時也經常出現(xiàn)問題。

  使用預先設計好的模塊不能保證一次流片就能成功。在過去的幾年中,幾家公司嘗試改變設計方法,藉由標準化的內部IP或虛擬組件(virtual components)以及軟件完全整合在共同的架構中,這樣的產品可建立起共同的功能而

形成所謂的基于的設計。設計方法是一種對于產品復雜度以及時效性非常有效的策略。衍生的設計也能通過增加IP而被快速地完成。此外,整合的架構將減少的不確定性,也因此可大大地減少設計所需力度與風險。

  在的技術挑戰(zhàn)之外,還有一些問題很少被提到,但它們卻對基于設計至為重要。其中之一的挑戰(zhàn)就是SoC設計團隊對于眾多子群――例如IP提供商、軟件工具提供商、EDA工具提供商、驗證團隊、系統(tǒng)設計團隊和代工廠之間的整合。不幸的是,大部分的平臺SoC提供者一般只對上述所提的一兩項比較熟悉。缺乏溝通將會嚴重地限制SoC設計步驟順利執(zhí)行。理想的SoC設計團隊和子群間應該是相互緊密聯(lián)系的,這樣設計中出現(xiàn)的問題才能快速地被解決。

  智原科技是一家老字號的設計服務公司,聚結上述眾多子群于公司內。積累大量的虛擬組件, 包括ARM V4指令兼容的32位嵌入式處理器和高速I/O。如圖二提供A320平臺提供預先整合的架構允許多功能性的實現(xiàn)而加快設計的時間。我們又如何這個SoC平臺設計自己的MPEG4編器IP在上頭?

A320平臺利用提供預先整合的架構允許多功能性的出現(xiàn)而加快設計的時間


  智原科技設計的這個器IP,首先要符合AHB的時序,目的是用以加速多媒體視頻。包含運動評估(Motion Estimation)、離散余弦變換/反離散余弦變換(DCT/IDCT)、量化運算(Quantization)/反轉量化運算(Inverse Quantization)和運動評估等全硬件的加速器。

  智原科技的ARM CPU-FA526為32位嵌入式CPU,是智原科技自行研制開發(fā)且合法的產品。該CPU采用哈佛結構,擁有六級流水線(pipeline),與ARM V4的結構兼容。FA526使用16K/16K bytes I-cache/D-cache和8K/8K bytes instruction / data scratchpads,采用JATG ICE接口使得編程調試極為方便,高性能低功耗讓該款CPU的使用領域變得十分廣泛。

  FA526AHB從接口控制編器。初始化的控制寄存器,運動估計對整個16x16或8x8的塊(block)計算的任務(task)能由自行完成。離散余弦變換/量化,反離散余弦變換/反轉化,AC/DC 預測,鋸齒狀掃描(Zigzag Scan)和可變長(VLC/VLD)計算的任務也能由編解碼器自行完成。

  還要再設計一個內部的DMA控制器執(zhí)行在系統(tǒng)內存與MPEG4/JPEG編解碼器本地內存的數據搬移的任務。DMA控制器包含一個AHB主接口和一個AHB從接口,AHB主接口使DMA控制器由AHB總線訪問數據,AHB從接口由AHB總線用以編程DMA控制器的控制寄存器。我們接著確定MPEG4/JPEG編解碼器IP的規(guī)格如下:

  全硬件的MPEG4/JPEG編解碼器.

  符合MPEG-4 (ISO/IEC 14496-2) simple profile L0 ~ L3標準
   -支持標準分辨率(sub QCIF, QCIF, CIF, VGA and 4CIF )和non-standard on 16-pixel steps
   -最大支持D1 @ 30 fps, XGA @ 15fps, SXGA @ 10fps
   -全雙工工作時,幀率為半雙工時的一半
   -支持MPEG4 short header format (H.263 baseline)
   -運動估計的搜索范圍:-16 ~ +15.5 (optional to C32 ~ +31.5) 在半個pixel精度的情況下
   -支持4MV
   -支持不變速率 (Constant Bit Rate) 和可變速率(Variable Bit Rate)控制
   -支持下面的兩種錯誤恢復工具
   -編碼:重新同步標志(re-synchronization marker)和頭擴展碼(header extension code)
   -解碼:重新同步標志(re-synchronization marker),頭擴展碼(header extension code),數據分割(data partition)和RVLC

  符合JPEG (ISO/IEC 10918-1) baseline 標準
   -4個用戶自定義的Huffman tables (2AC和2DC)
   -4個可編程的量化表
   -隔行和逐行掃描
   -YCbCr 4:4:4, 4:2:2 和4:2:

0格式
   -圖片尺寸最大到64kx64k
   -60fps 在640x480的分辨率

  MPEG4 影像壓縮是將取得的影像經過動態(tài)估計,取得其移動向(Motion Vector)以及絕對差值和(SAD),當絕對差值和太大時,將原的影像送入離散余弦變換(Discrete Cosine Transform),反之,則將現(xiàn)在的影像與前一張還原的影像做差值運算,將差值送入離散余弦變換。之后再將離散余弦變換完成的資作化運算,并將化后的資作AC/DC預測器(AC/DC prediction),之后再將直交預測完畢的資傳入可變長編碼器(Variable Length Code),將原始的影像資壓縮成基本比特流(Base Layer Bitstream)的方式傳出,客戶端在接收到基本比特流之后,可以在經過解碼器的解壓縮將視頻還原,另外一方面,化運算完畢的資除傳入AC/DC預測器,也將同時傳入反轉化器(Inverse Quantization),再將反轉化后的資傳入反離散余弦轉換,再依據之前動態(tài)預估時計算的結果做動態(tài)補償(Motion Compensation),以重建出一張影像作為下一張影像的參考影像。確認規(guī)格后,將編解碼器的模塊架構定義好,如下圖三所示。我們對其中一些模塊做說明。

MPEG4

  運動估計(Motion Estimation, ME):運動估計單元能基于快速搜索算法(fast search algorithm)對整個搜索窗口(Search Window)進行運動估。簡單就是去估算當前的幀(Frame)某一個N×N 區(qū)塊(Macro block)和早先的幀(Reference block)最相似的區(qū)塊位移的向,稱之為移動向。這個區(qū)塊所要搜尋的范圍在這區(qū)塊四周往外擴展固定值w,稱為搜索區(qū)(Search Area)。

  DCT/IDCT:MPEG4算法的核心是一種稱為離散余弦變換(DCT)的操作。DCT的基本原理是取像素塊的平方并除去觀察者察覺不到的冗余信息。為了解壓縮數據,還需要反離散余弦(IDCT)運算。DCT/IDCT單元就是負擔離散余弦變換和反離散余弦的運算。IDCT與DCT共享相同的硬件資源,產生的結果兼容IEEE 1180-1990規(guī)格,在解碼的狀態(tài)送到運動估計單元。DCT產生的結果在編碼的狀態(tài)送到量化單元。

  量化(Quantization, Q)/ 反轉化(Inverse Quantization, IQ):化主要用配合DCT 的結果減少資的大小,以增加之后VLC 的壓縮比。反轉化加上DCT將編碼后的影像資進譯碼動作,用結合運動估計時計算的結果做動態(tài)補償,以重建出一張影像作為下一張影像的參考影像。量化/反轉化單元支持H.263/MPEG/JPEG量化方法。量化產生的結果在編碼的狀態(tài)送到AC/DCP單元。IQ產生的結果在解碼的狀態(tài)送到IDCT單元。

  AC/DCP(AC/DC Prediction):AC/DC 預測目的是參考塊(Block)周圍其它區(qū)塊(Macro Block) 的量化值,對其參考塊作預測,減少資的大小,以增加VLC 的壓縮比。AC/DC預測單元支持MPEG-4AC/DC預測和JPEG DC預測方法。AC/DC預測單元產生的結果在編碼的狀態(tài)送到Zigzag Scan單元。反AC/DC預測單元產生的結果在解碼的狀態(tài)送到反轉化單元。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉